diff options
author | Junio C Hamano <junkio@cox.net> | 2005-08-29 21:51:26 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-08-29 21:51:26 -0700 |
commit | 706df00d6864201bdb90a2f3b26443a65ae538ff (patch) | |
tree | 51a9c4cc0b88cd2a61877cc4280bdfc27150338f | |
parent | 7a034337420a45395b3f68a1f12ca53d8b0652be (diff) | |
parent | 3459c2c433ac46eac596810d2ef2c3d4ef949852 (diff) | |
download | git-706df00d6864201bdb90a2f3b26443a65ae538ff.tar.gz |
Merge refs/heads/master from .
-rw-r--r-- | Documentation/SubmittingPatches | 8 | ||||
-rw-r--r-- | Documentation/git-clone-dumb-http.txt | 18 | ||||
-rw-r--r-- | Documentation/git-daemon.txt | 26 | ||||
-rw-r--r-- | Documentation/git-request-pull-script.txt | 18 | ||||
-rw-r--r-- | Documentation/howto/revert-branch-rebase.txt | 199 | ||||
-rw-r--r-- | commit.c | 2 | ||||
-rw-r--r-- | diff.c | 2 | ||||
-rwxr-xr-x | git-commit-script | 3 | ||||
-rwxr-xr-x | git-revert-script | 2 |
9 files changed, 242 insertions, 36 deletions
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches index fd9881f26c..26db5dd283 100644 --- a/Documentation/SubmittingPatches +++ b/Documentation/SubmittingPatches @@ -239,7 +239,7 @@ Thunderbird (A Large Angry SCM) Here are some hints on how to successfully submit patches inline using -Thunderbird. [*3*] +Thunderbird. This recipe appears to work with the current [*1*] Thunderbird from Suse. @@ -260,7 +260,7 @@ patch. [*2*] for the patch, use Tools->about:config to set the following to the indicated values: mailnews.send_plaintext_flowed => false - mailnews.wraplength => 999 + mailnews.wraplength => 0 4) Open a compose window and click the external editor icon. @@ -284,7 +284,3 @@ settings but I haven't tried, yet. mail.identity.default.compose_html => false mail.identity.id?.compose_html => false -*3* Even after following these hints, Thunderbird will still trim -trailing whitespace from each line. I currently have no work around for -for this issue. - diff --git a/Documentation/git-clone-dumb-http.txt b/Documentation/git-clone-dumb-http.txt index 782484517d..1704649229 100644 --- a/Documentation/git-clone-dumb-http.txt +++ b/Documentation/git-clone-dumb-http.txt @@ -3,26 +3,24 @@ git-clone-dumb-http(1) NAME ---- -git-clone-dumb-http - Some git command not yet documented. - +git-clone-dumb-http - Client to clone a repository via HTTP. SYNOPSIS -------- -'git-clone-dumb-http' [ --option ] <args>... +'git-clone-dumb-http' <remote-repo> <local-dir> DESCRIPTION ----------- -Does something not yet documented. - +Client to clone, via HTTP, a repository that has been prepared with +update-server-info. OPTIONS ------- ---option:: - Some option not yet documented. - -<args>...:: - Some argument not yet documented. +<remote-repo>:: + Remote repository to clone from. +<local-dir>:: + Directory to clone to. Author ------ diff --git a/Documentation/git-daemon.txt b/Documentation/git-daemon.txt index 5886c83ec8..5fc45f2158 100644 --- a/Documentation/git-daemon.txt +++ b/Documentation/git-daemon.txt @@ -3,26 +3,34 @@ git-daemon(1) NAME ---- -git-daemon - Some git command not yet documented. - +git-daemon - A really simple server for GIT repositories. SYNOPSIS -------- -'git-daemon' [ --option ] <args>... +'git-daemon' [--inetd | --port=n] DESCRIPTION ----------- -Does something not yet documented. +A really simple TCP git daemon that normally listens on port "DEFAULT_GIT_PORT" +aka 9418. It waits for a connection, and will just execute "git-upload-pack" +when it gets one. + +It's careful in that there's a magic request-line that gives the command and +what directory to upload, and it verifies that the directory is ok. +It verifies that the directory has the magic file "git-daemon-export-ok", and +it will refuse to export any git directory that hasn't explicitly been marked +for export this way. + +This is ideally suited for read-only updates, ie pulling from git repositories. OPTIONS ------- ---option:: - Some option not yet documented. - -<args>...:: - Some argument not yet documented. +--inetd:: + Have the server run as an inetd service. +--port:: + Listen on an alternative port. Author ------ diff --git a/Documentation/git-request-pull-script.txt b/Documentation/git-request-pull-script.txt index 891468ddb1..1ebf72633b 100644 --- a/Documentation/git-request-pull-script.txt +++ b/Documentation/git-request-pull-script.txt @@ -3,26 +3,28 @@ git-request-pull-script(1) NAME ---- -git-request-pull-script - Some git command not yet documented. - +git-request-pull-script - Generates a summary of pending changes. SYNOPSIS -------- -'git-request-pull-script' [ --option ] <args>... +'git-request-pull-script' <start> <url> [<end>] DESCRIPTION ----------- -Does something not yet documented. +Summarizes the changes between two commits to the standard output, and includes +the given URL in the generated summary. OPTIONS ------- ---option:: - Some option not yet documented. +<start>:: + Commit to start at. -<args>...:: - Some argument not yet documented. +<url>:: + URL to include in the summary. +<end>:: + Commit to send at; defaults to HEAD. Author ------ diff --git a/Documentation/howto/revert-branch-rebase.txt b/Documentation/howto/revert-branch-rebase.txt new file mode 100644 index 0000000000..1c9a368882 --- /dev/null +++ b/Documentation/howto/revert-branch-rebase.txt @@ -0,0 +1,199 @@ +From: Junio C Hamano <junkio@cox.net> +To: git@vger.kernel.org +Subject: [HOWTO] Reverting an existing commit +Abstract: In this article, JC gives a small real-life example of using + 'git revert' command, and using a temporary branch and tag for safety + and easier sanity checking. +Date: Mon, 29 Aug 2005 21:39:02 -0700 +Content-type: text/asciidoc +Message-ID: <7voe7g3uop.fsf@assigned-by-dhcp.cox.net> + +Reverting an existing commit +============================ + +One of the changes I pulled into the 'master' branch turns out to +break building GIT with GCC 2.95. While they were well intentioned +portability fixes, keeping things working with gcc-2.95 was also +important. Here is what I did to revert the change in the 'master' +branch and to adjust the 'pu' branch, using core GIT tools and +barebone Porcelain. + +First, prepare a throw-away branch in case I screw things up. + +------------------------------------------------ +$ git checkout -b revert-c99 master +------------------------------------------------ + +Now I am on the 'revert-c99' branch. Let's figure out which commit to +revert. I happen to know that the top of the 'master' branch is a +merge, and its second parent (i.e. foreign commit I merged from) has +the change I would want to undo. Further I happen to know that that +merge introduced 5 commits or so: + +------------------------------------------------ +$ git show-branch --more=4 master master^2 | head +! [master] Merge refs/heads/portable from http://www.cs.berkeley.... + ! [master^2] Replace C99 array initializers with code. +-- ++ [master] Merge refs/heads/portable from http://www.cs.berkeley.... +++ [master^2] Replace C99 array initializers with code. +++ [master^2~1] Replace unsetenv() and setenv() with older putenv(). +++ [master^2~2] Include sys/time.h in daemon.c. +++ [master^2~3] Fix ?: statements. +++ [master^2~4] Replace zero-length array decls with []. ++ [master~1] tutorial note about git branch +------------------------------------------------ + +The '--more=4' above means "after we reach the merge base of refs, +show until we display four more common commits". That last commit +would have been where the "portable" branch was forked from the main +git.git repository, so this would show everything on both branches +since then. I just limited the output to the first handful using +'head'. + +Now I know 'master^2~4' (pronounce it as "find the second parent of +the 'master', and then go four generations back following the first +parent") is the one I would want to revert. Since I also want to say +why I am reverting it, the '-n' flag is given to 'git revert'. This +prevents it from actually making a commit, and instead 'git revert' +leaves the commit log message it wanted to use in '.msg' file: + +------------------------------------------------ +$ git revert -n master^2~4 +$ cat .msg +Revert "Replace zero-length array decls with []." + +This reverts 6c5f9baa3bc0d63e141e0afc23110205379905a4 commit. +$ git diff HEAD ;# to make sure what we are reverting makes sense. +$ make CC=gcc-2.95 clean test ;# make sure it fixed the breakage. +$ make clean test ;# make sure it did not cause other breakage. +------------------------------------------------ + +The reverted change makes sense (from reading the 'diff' output), does +fix the problem (from 'make CC=gcc-2.95' test), and does not cause new +breakage (from the last 'make test'). I'm ready to commit: + +------------------------------------------------ +$ git commit -a -s ;# read .msg into the log, + # and explain why I am reverting. +------------------------------------------------ + +I could have screwed up in any of the above steps, but in the worst +case I could just have done 'git checkout master' to start over. +Fortunately I did not have to; what I have in the current branch +'revert-c99' is what I want. So merge that back into 'master': + +------------------------------------------------ +$ git checkout master +$ git resolve master revert-c99 fast ;# this should be a fast forward +Updating from 10d781b9caa4f71495c7b34963bef137216f86a8 to e3a693c... + cache.h | 8 ++++---- + commit.c | 2 +- + ls-files.c | 2 +- + receive-pack.c | 2 +- + server-info.c | 2 +- + 5 files changed, 8 insertions(+), 8 deletions(-) +------------------------------------------------ + +The 'fast' in the above 'git resolve' is not a magic. I knew this +'resolve' would result in a fast forward merge, and if not, there is +something very wrong (so I would do 'git reset' on the 'master' branch +and examine the situation). When a fast forward merge is done, the +message parameter to 'git resolve' is discarded, because no new commit +is created. You could have said 'junk' or 'nothing' there as well. + +There is no need to redo the test at this point. We fast forwarded +and we know 'master' matches 'revert-c99' exactly. In fact: + +------------------------------------------------ +$ git diff master..revert-c99 +------------------------------------------------ + +says nothing. + +Then we rebase the 'pu' branch as usual. + +------------------------------------------------ +$ git checkout pu +$ git tag pu-anchor pu +$ git rebase master +* Applying: Redo "revert" using three-way merge machinery. +First trying simple merge strategy to cherry-pick. +Finished one cherry-pick. +* Applying: Remove git-apply-patch-script. +First trying simple merge strategy to cherry-pick. +Simple cherry-pick fails; trying Automatic cherry-pick. +Removing Documentation/git-apply-patch-script.txt +Removing git-apply-patch-script +Finished one cherry-pick. +* Applying: Document "git cherry-pick" and "git revert" +First trying simple merge strategy to cherry-pick. +Finished one cherry-pick. +* Applying: mailinfo and applymbox updates +First trying simple merge strategy to cherry-pick. +Finished one cherry-pick. +* Applying: Show commits in topo order and name all commits. +First trying simple merge strategy to cherry-pick. +Finished one cherry-pick. +* Applying: More documentation updates. +First trying simple merge strategy to cherry-pick. +Finished one cherry-pick. +------------------------------------------------ + +The temporary tag 'pu-anchor' is me just being careful, in case 'git +rebase' screws up. After this, I can do these for sanity check: + +------------------------------------------------ +$ git diff pu-anchor..pu ;# make sure we got the master fix. +$ make CC=gcc-2.95 clean test ;# make sure it fixed the breakage. +$ make clean test ;# make sure it did not cause other breakage. +------------------------------------------------ + +Everything is in the good order. I do not need the temporary branch +nor tag anymore, so remove them: + +------------------------------------------------ +$ rm -f .git/refs/tags/pu-anchor .git/refs/heads/revert-c99 +------------------------------------------------ + +It was an emergency fix, so we might as well merge it into the +'release candidate' branch, although I expect the next release would +be some days off: + +------------------------------------------------ +$ git checkout rc +$ git pull . master +Packing 0 objects +Unpacking 0 objects + +* committish: e3a693c... refs/heads/master from . +Trying to merge e3a693c... into 8c1f5f0... using 10d781b... +Committed merge 7fb9b7262a1d1e0a47bbfdcbbcf50ce0635d3f8f + cache.h | 8 ++++---- + commit.c | 2 +- + ls-files.c | 2 +- + receive-pack.c | 2 +- + server-info.c | 2 +- + 5 files changed, 8 insertions(+), 8 deletions(-) +------------------------------------------------ + +And the final repository status looks like this: + +------------------------------------------------ +$ git show-branch --more=1 master pu rc +! [master] Revert "Replace zero-length array decls with []." + ! [pu] git-repack-script: Add option to repack all objects. + * [rc] Merge refs/heads/master from . +--- + + [pu] git-repack-script: Add option to repack all objects. + + [pu~1] More documentation updates. + + [pu~2] Show commits in topo order and name all commits. + + [pu~3] mailinfo and applymbox updates + + [pu~4] Document "git cherry-pick" and "git revert" + + [pu~5] Remove git-apply-patch-script. + + [pu~6] Redo "revert" using three-way merge machinery. + + [rc] Merge refs/heads/master from . ++++ [master] Revert "Replace zero-length array decls with []." + + [rc~1] Merge refs/heads/master from . ++++ [master~1] Merge refs/heads/portable from http://www.cs.berkeley.... +------------------------------------------------ @@ -357,7 +357,7 @@ static int get_one_line(const char *msg, unsigned long len) static int add_user_info(const char *what, enum cmit_fmt fmt, char *buf, const char *line) { char *date; - unsigned int namelen; + int namelen; unsigned long time; int tz, ret; @@ -704,7 +704,7 @@ static int parse_num(const char **cp_p) scale *= 10; num = num * 10 + ch - '0'; } - *cp++; + cp++; } *cp_p = cp; diff --git a/git-commit-script b/git-commit-script index 4987e37861..cd28dde64d 100755 --- a/git-commit-script +++ b/git-commit-script @@ -64,6 +64,9 @@ do use_commit="$1" no_edit=t shift ;; + -e|--e|--ed|--edi|--edit) + no_edit= + shift ;; -s|--s|--si|--sig|--sign|--signo|--signof|--signoff) signoff=t shift ;; diff --git a/git-revert-script b/git-revert-script index dd5866ec96..82ed093807 100755 --- a/git-revert-script +++ b/git-revert-script @@ -158,7 +158,7 @@ echo >&2 "Finished one $me." case "$no_commit" in '') - git commit -F .msg + git-commit-script -n -F .msg rm -f .msg ;; esac |