From d5a6aafc90a14382120727e4e81ee1a380e8b194 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Tue, 10 Jan 2006 22:26:46 +0100 Subject: glossary: explain "master" and "origin" If you are a long time git user/developer, you forget that to a new git user, these words have not the same meaning as to you. [jc: with updates from J. Bruce Fields.] Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano diff --git a/Documentation/glossary.txt b/Documentation/glossary.txt index 2331be5..02a9d9c 100644 --- a/Documentation/glossary.txt +++ b/Documentation/glossary.txt @@ -111,6 +111,17 @@ branch:: a particular revision, which is called the branch head. The branch heads are stored in `$GIT_DIR/refs/heads/`. +master:: + The default branch. Whenever you create a git repository, a branch + named "master" is created, and becomes the active branch. In most + cases, this contains the local development. + +origin:: + The default upstream branch. Most projects have one upstream + project which they track, and by default 'origin' is used for + that purpose. New updates from upstream will be fetched into + this branch; you should never commit to it yourself. + ref:: A 40-byte hex representation of a SHA1 pointing to a particular object. These may be stored in `$GIT_DIR/refs/`. -- cgit v0.10.2-6-g49f6 From a94d9948da539fdafc26c74afb335b2fe9f8f21d Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 11 Jan 2006 13:36:45 -0800 Subject: update-index: work with c-quoted name update-index --stdin did not work with c-style quoted names even though update-index --index-info did. This fixes the inconsistency. Signed-off-by: Junio C Hamano diff --git a/update-index.c b/update-index.c index be87b99..a84a04f 100644 --- a/update-index.c +++ b/update-index.c @@ -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) { -- cgit v0.10.2-6-g49f6 From 2c817df25d54b557d6cac0800cacfd0a255cd56d Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 11 Jan 2006 14:20:09 -0800 Subject: name-rev: do not omit leading components of ref name. In a repository with mainto/1.0 (to keep maintaining the 1.0.X series) and fixo/1.0 (to keep fixes that apply to both 1.0.X series and upwards) branches, "git-name-rev mainto/1.0" answered just "1.0" making things ambiguous. Show refnames unambiguously like show-branch does. Signed-off-by: Junio C Hamano diff --git a/name-rev.c b/name-rev.c index 65333d4..bbadb91 100644 --- a/name-rev.c +++ b/name-rev.c @@ -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); } diff --git a/t/t6010-merge-base.sh b/t/t6010-merge-base.sh index c3a9680..1dce123 100755 --- a/t/t6010-merge-base.sh +++ b/t/t6010-merge-base.sh @@ -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 -- cgit v0.10.2-6-g49f6 From 87758f975b04233ba058750f7ea8ce63bb67297f Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 11 Jan 2006 00:20:25 -0800 Subject: show-branch: handle [] globs as well. Earlier only '?' and '*' signalled the command that what the user has given is a glob pattern. This prevented us to say: $ git show-branch 'v0.99.[0-3]' Now we notice '[' as well, so the above would work. Signed-off-by: Junio C Hamano diff --git a/show-branch.c b/show-branch.c index 15b1968..1935c44 100644 --- a/show-branch.c +++ b/show-branch.c @@ -492,7 +492,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; -- cgit v0.10.2-6-g49f6 From c2bc6e404d75a3a68da5eefa47fa867569bc3339 Mon Sep 17 00:00:00 2001 From: "J. Bruce Fields" Date: Thu, 12 Jan 2006 22:08:37 -0500 Subject: Documentation: clarify fetch parameter descriptions. Signed-off-by: Junio C Hamano diff --git a/Documentation/pull-fetch-param.txt b/Documentation/pull-fetch-param.txt index b5b9792..4524fee 100644 --- a/Documentation/pull-fetch-param.txt +++ b/Documentation/pull-fetch-param.txt @@ -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 to mean a - refspec `refs/tags/:refs/tags/`. +* `tag ` means the same as `refs/tags/:refs/tags/`; + used with pull or fetch, it requests fetching everything up to + the given tag. * A parameter without a colon is equivalent to : when pulling/fetching, and `:` when pushing. That is, do not store it locally if -- cgit v0.10.2-6-g49f6 From cb95bf488b4363b51bd0aebc877a928858e51545 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 13 Jan 2006 12:59:21 -0800 Subject: Documentation: git-commit -a A bit more elaboration on what "update all paths" means. Signed-off-by: Junio C Hamano diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt index e0ff74f..e35984d 100644 --- a/Documentation/git-commit.txt +++ b/Documentation/git-commit.txt @@ -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 :: Take existing commit object, and reuse the log message -- cgit v0.10.2-6-g49f6 From a0dfb48af73a98ceb60629f2bbc4ebf1393ba0af Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 13 Jan 2006 13:17:55 -0800 Subject: Documentation: git-reset - interrupted workflow. Signed-off-by: Junio C Hamano diff --git a/Documentation/git-reset.txt b/Documentation/git-reset.txt index c6a269b..315683a 100644 --- a/Documentation/git-reset.txt +++ b/Documentation/git-reset.txt @@ -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 and Linus Torvalds @@ -156,4 +182,3 @@ Documentation by Junio C Hamano and the git-list . GIT --- Part of the gitlink:git[7] suite - -- cgit v0.10.2-6-g49f6 From ee3d299e93450586d12f099913261ec22849365a Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sun, 15 Jan 2006 21:08:42 -0800 Subject: diffcore-break/diffcore-rename: integer overflow. While reviewing the end user tutorial rewrite by J. Bruce Fields, I noticed that "git-diff-tree -B -C" did not correctly break the total rewrite of Documentation/tutorial.txt. It turns out that we had integer overflow during the break score computations. Cop out by using floating point. This is not a kernel. Signed-off-by: Junio C Hamano diff --git a/diffcore.h b/diffcore.h index a38acb1..12cd816 100644 --- a/diffcore.h +++ b/diffcore.h @@ -15,7 +15,7 @@ * passed around in one int (high 16-bit for merge and low 16-bit * for break). */ -#define MAX_SCORE 60000 +#define MAX_SCORE 60000.0 #define DEFAULT_RENAME_SCORE 30000 /* rename/copy similarity minimum (50%) */ #define DEFAULT_BREAK_SCORE 30000 /* minimum for break to happen (50%)*/ #define DEFAULT_MERGE_SCORE 48000 /* maximum for break-merge to happen (80%)*/ -- cgit v0.10.2-6-g49f6