Code

Merge refs/heads/master from .
authorJunio C Hamano <junkio@cox.net>
Tue, 30 Aug 2005 04:51:26 +0000 (21:51 -0700)
committerJunio C Hamano <junkio@cox.net>
Tue, 30 Aug 2005 04:51:26 +0000 (21:51 -0700)
Documentation/SubmittingPatches
Documentation/git-clone-dumb-http.txt
Documentation/git-daemon.txt
Documentation/git-request-pull-script.txt
Documentation/howto/revert-branch-rebase.txt [new file with mode: 0644]
commit.c
diff.c
git-commit-script
git-revert-script

index fd9881f26c09c08a76acea8c30d4cedbc9bcedea..26db5dd28322e4f43caafdcfd71536ee12a26bf3 100644 (file)
@@ -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.
-
index 782484517d0803e8a223f0ab0ebfdcd370ec12f1..1704649229367db8825458c0d32f6139c58cd34e 100644 (file)
@@ -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
 ------
index 5886c83ec8b3b8a9b2d45a3094f6fbdd5f7c0904..5fc45f215835610c7780ada5b5dc36f590b836da 100644 (file)
@@ -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
 ------
index 891468ddb19670b8c8e21f3d3d47a8acf1938ecc..1ebf72633b38491ce5688a8c0da5ad49c72dad81 100644 (file)
@@ -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 (file)
index 0000000..1c9a368
--- /dev/null
@@ -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....
+------------------------------------------------
index e51eda15243614d83948f31ee3814120ad61b1fe..2f73cf3d9085a620bedd32e818942a11febab44f 100644 (file)
--- a/commit.c
+++ b/commit.c
@@ -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;
 
diff --git a/diff.c b/diff.c
index 9015c81d76b4038bf5cc567aa2e055370b6ffee8..527cbf04adf86fe6fc4c449971ac177d63736330 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -704,7 +704,7 @@ static int parse_num(const char **cp_p)
                        scale *= 10;
                        num = num * 10 + ch - '0';
                }
-               *cp++;
+               cp++;
        }
        *cp_p = cp;
 
index 4987e37861adac29af5bfd03a8d8e1e6932338e0..cd28dde64d2addb0c6df7007232778a84ea88e08 100755 (executable)
@@ -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 ;;
index dd5866ec96b384c530f176a18e565e9700a344f8..82ed0938078fb060b6925f3de4ca6d703137ed24 100755 (executable)
@@ -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