Merge fixes up to GIT 1.1.2
This commit is contained in:
commit
429608fc36
1
.gitignore
vendored
1
.gitignore
vendored
@ -28,6 +28,7 @@ git-diff-files
|
||||
git-diff-index
|
||||
git-diff-stages
|
||||
git-diff-tree
|
||||
git-describe
|
||||
git-fetch
|
||||
git-fetch-pack
|
||||
git-findtags
|
||||
|
@ -25,7 +25,9 @@ information.
|
||||
OPTIONS
|
||||
-------
|
||||
-a|--all::
|
||||
Update all paths in the index file.
|
||||
Update all paths in the index file. This flag notices
|
||||
files that have been modified and deleted, but new files
|
||||
you have not told about git are not affected.
|
||||
|
||||
-c or -C <commit>::
|
||||
Take existing commit object, and reuse the log message
|
||||
|
@ -145,6 +145,32 @@ brings your index file and the working tree back to that state,
|
||||
and resets the tip of the branch to that commit.
|
||||
------------
|
||||
|
||||
Interrupted workflow::
|
||||
+
|
||||
You can get interrupted by an ungent fix request while you are
|
||||
still in the middle of a large change. The files in your
|
||||
working tree are not in any shape to be committed yet, but you
|
||||
need to get to the other branch for a quick bugfix.
|
||||
+
|
||||
------------
|
||||
$ git checkout feature ;# you were working in "feature" branch and
|
||||
$ work work work ;# got interrupted
|
||||
$ git commit -a -m 'snapshot WIP' <1>
|
||||
$ git checkout master
|
||||
$ fix fix fix
|
||||
$ git commit ;# commit with real log
|
||||
$ git checkout feature
|
||||
$ git reset --soft HEAD^ ;# go back to WIP state <2>
|
||||
$ git reset <3>
|
||||
|
||||
<1> This commit will get blown away so a throw-away log message is OK.
|
||||
<2> This removes the 'WIP' commit from the commit history, and makes
|
||||
your working tree in the state just before you made that snapshot.
|
||||
<3> After <2>, the index file still has all the WIP changes you
|
||||
committed in <1>. This sets it to the last commit you were
|
||||
basing the WIP changes on.
|
||||
------------
|
||||
|
||||
Author
|
||||
------
|
||||
Written by Junio C Hamano <junkio@cox.net> and Linus Torvalds <torvalds@osdl.org>
|
||||
@ -156,4 +182,3 @@ Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
|
||||
GIT
|
||||
---
|
||||
Part of the gitlink:git[7] suite
|
||||
|
||||
|
@ -134,9 +134,9 @@ is often useful.
|
||||
+
|
||||
Some short-cut notations are also supported.
|
||||
+
|
||||
* For backward compatibility, `tag` is almost ignored;
|
||||
it just makes the following parameter <tag> to mean a
|
||||
refspec `refs/tags/<tag>:refs/tags/<tag>`.
|
||||
* `tag <tag>` means the same as `refs/tags/<tag>:refs/tags/<tag>`;
|
||||
used with pull or fetch, it requests fetching everything up to
|
||||
the given tag.
|
||||
* A parameter <ref> without a colon is equivalent to
|
||||
<ref>: when pulling/fetching, and <ref>`:`<ref> when
|
||||
pushing. That is, do not store it locally if
|
||||
|
@ -132,10 +132,11 @@ static void describe(char *arg)
|
||||
if (n) {
|
||||
printf("%s-g%s\n", n->path,
|
||||
find_unique_abbrev(cmit->object.sha1, abbrev));
|
||||
break;
|
||||
clear_commit_marks(cmit, SEEN);
|
||||
return;
|
||||
}
|
||||
}
|
||||
clear_commit_marks(cmit, SEEN);
|
||||
die("cannot describe '%s'", sha1_to_hex(cmit->object.sha1));
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
|
@ -93,10 +93,11 @@ static int name_ref(const char *path, const unsigned char *sha1)
|
||||
}
|
||||
if (o && o->type == commit_type) {
|
||||
struct commit *commit = (struct commit *)o;
|
||||
const char *p;
|
||||
|
||||
while ((p = strchr(path, '/')))
|
||||
path = p+1;
|
||||
if (!strncmp(path, "refs/heads/", 11))
|
||||
path = path + 11;
|
||||
else if (!strncmp(path, "refs/", 5))
|
||||
path = path + 5;
|
||||
|
||||
name_rev(commit, strdup(path), 0, 0, deref);
|
||||
}
|
||||
|
@ -496,7 +496,7 @@ static void append_one_rev(const char *av)
|
||||
append_ref(av, revkey);
|
||||
return;
|
||||
}
|
||||
if (strchr(av, '*') || strchr(av, '?')) {
|
||||
if (strchr(av, '*') || strchr(av, '?') || strchr(av, '[')) {
|
||||
/* glob style match */
|
||||
int saved_matches = ref_name_cnt;
|
||||
match_ref_pattern = av;
|
||||
|
@ -46,14 +46,14 @@ H=$(doit 8 H $A $F)
|
||||
|
||||
test_expect_success 'compute merge-base (single)' \
|
||||
'MB=$(git-merge-base G H) &&
|
||||
expr "$(git-name-rev "$MB")" : "[0-9a-f]* B"'
|
||||
expr "$(git-name-rev "$MB")" : "[0-9a-f]* tags/B"'
|
||||
|
||||
test_expect_success 'compute merge-base (all)' \
|
||||
'MB=$(git-merge-base --all G H) &&
|
||||
expr "$(git-name-rev "$MB")" : "[0-9a-f]* B"'
|
||||
expr "$(git-name-rev "$MB")" : "[0-9a-f]* tags/B"'
|
||||
|
||||
test_expect_success 'compute merge-base with show-branch' \
|
||||
'MB=$(git-show-branch --merge-base G H) &&
|
||||
expr "$(git-name-rev "$MB")" : "[0-9a-f]* B"'
|
||||
expr "$(git-name-rev "$MB")" : "[0-9a-f]* tags/B"'
|
||||
|
||||
test_done
|
||||
|
@ -534,10 +534,17 @@ int main(int argc, const char **argv)
|
||||
struct strbuf buf;
|
||||
strbuf_init(&buf);
|
||||
while (1) {
|
||||
char *path_name;
|
||||
read_line(&buf, stdin, line_termination);
|
||||
if (buf.eof)
|
||||
break;
|
||||
update_one(buf.buf, prefix, prefix_length);
|
||||
if (line_termination && buf.buf[0] == '"')
|
||||
path_name = unquote_c_style(buf.buf, NULL);
|
||||
else
|
||||
path_name = buf.buf;
|
||||
update_one(path_name, prefix, prefix_length);
|
||||
if (path_name != buf.buf)
|
||||
free(path_name);
|
||||
}
|
||||
}
|
||||
if (active_cache_changed) {
|
||||
|
Loading…
Reference in New Issue
Block a user