On 08/29/2015 10:58 AM, Dominique d'Humières wrote:
For Jakub or anyone else wanting a key to associate a file with a commit, they
can decide for themselves
what date format they want to use and whether to bother with the user id. I
would think that if he is only
interested in commits on the trunk (and so should use log --first-parent), the
timestamp is sufficient.
I share Jakub’s concern about having access to an increasing labeling of the
revisions. What would be the replacement of « svn update -r xxxx »?
Given git aliases:
stamp = show -s --format='%cI!%ce'
scommit = "!f(){ d=${1%%!*}; a=${1##*!}; arg=\"--until=$d -1\"; if [ $a != $1 ]; then
arg=\"$arg --committer=$a\"; fi; shift; git rev-list $arg ${1:+\"$@\"}; }; f"
smaster = "!f(){ git scommit \"$1\" trunk --first-parent; }; f"
shs = "!f(){ git show $(git smaster $1); }; f"
slog = "!f(){ s=$1; shift; git log $(git smaster $s) $*; }; f"
sco = "!f(){ git checkout $(git smaster $1); }; f"
and an action stamp 2015-08-20T20:55:15Z!jason, then
git sco 2015-08-20T20:55:15Z\!jason
will check out the (most recent) commit with that stamp. It also works
with just the timestamp.
A timestamp gives you a simple increasing (though sparse) label, though
it might not always be unique; when I locally rebase several patches I
sometimes get two or three with the same timestamp, which I expect to be
preserved if I push them upstream.
Jason