From: Johan Herland <johan@herland.net>
To: Norbert Preining <preining@logic.at>
Cc: git@vger.kernel.org
Subject: Re: Creating something like increasing revision numbers
Date: Sun, 18 Oct 2009 17:03:20 +0200 [thread overview]
Message-ID: <200910181703.20607.johan@herland.net> (raw)
In-Reply-To: <20091018144158.GA9789@gandalf.dynalias.org>
On Sunday 18 October 2009, Norbert Preining wrote:
> Now, there is one show-stopper I see. From our repository we create a
> set of "packages", and the maximum of the "last-changed" revisions of
> the contained files determine the "version" of the package. This
> guarantees that any change in a file will increase the revision number
> of the package (some tricks for removals have to be done). This is
> necessary since we are distributing the packages from servers and the
> version number pf a package determines whether it should be upgraded
> (well known concept).
>
> Now my question, is there any way to set up something similar with git?
>
> My idea is that git - like subversion - could (if asked to) count each
> commit (global to the repository, irrelevant of the branch) and give it
> a version number. Since we all will use a bare repository on a server
> and pull/push from/to there, I think that something similar could be
> possible.
>
> So, before I delve into more gitty-nitty conversion, let me know if
> there is any chance for that, or we should stay with subversion.
A global, increasing version number ala SVN is fundamentally impossible in
any distributed version control system (like Git).
However, you can get a useful version specifier from the "git describe"
command. It will give you back something like the following:
$ git describe
v1.0.4-14-g2414721
where the "v1.0.4" part is the last tag that the current state is based on,
the "14" part is the number of commit between that tag and the current
state, and the "2414721" is the abbreviated object name (SHA1 id) for the
current commit itself.
This is somewhat more complex than a simple version number, but guarantees a
globally unique name for your current state that works in a distributed
environment.
Also, I find "v1.0.4-14..." (i.e. 14 commits since v1.0.4) much more useful
than, say, "12534" (i.e. 12534 commits since the start of the project).
See 'git help describe for more info'
Have fun! :)
...Johan
--
Johan Herland, <johan@herland.net>
www.herland.net
next prev parent reply other threads:[~2009-10-18 15:04 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-18 14:41 Creating something like increasing revision numbers Norbert Preining
2009-10-18 15:03 ` Johan Herland [this message]
2009-10-18 15:20 ` Norbert Preining
2009-10-18 17:23 ` Johan Herland
2009-10-18 18:16 ` alexandrul
2009-10-19 1:15 ` Nicolas Pitre
2009-10-18 22:47 ` Junio C Hamano
2009-10-19 0:48 ` Norbert Preining
2009-10-18 15:29 ` alexandrul
2009-10-18 15:37 ` demerphq
2009-10-18 15:45 ` Norbert Preining
2009-10-18 16:16 ` demerphq
2009-10-18 16:35 ` alexandrul
2009-10-18 15:37 ` Jon Smirl
2009-10-18 21:43 ` Daniel Barkalow
2009-10-19 0:44 ` Norbert Preining
2009-10-19 1:16 ` Daniel Barkalow
2009-10-19 1:33 ` Norbert Preining
2009-10-19 2:41 ` Daniel Barkalow
2009-10-19 1:34 ` Nicolas Pitre
2009-10-19 1:42 ` Norbert Preining
2009-10-19 6:21 ` Johannes Sixt
2009-10-21 7:47 ` David Aguilar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200910181703.20607.johan@herland.net \
--to=johan@herland.net \
--cc=git@vger.kernel.org \
--cc=preining@logic.at \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).