From: Junio C Hamano Date: Sat, 15 Jul 2006 01:38:40 +0000 (+0000) Subject: Autogenerated HTML docs for v1.4.1-ga3e6 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=7ccb9fd251897744e84ea1692321ec66a3b0164a;p=git.git Autogenerated HTML docs for v1.4.1-ga3e6 --- diff --git a/core-tutorial.html b/core-tutorial.html index 7250064d4..b012aab64 100644 --- a/core-tutorial.html +++ b/core-tutorial.html @@ -2011,7 +2011,7 @@ to follow, not easier.

diff --git a/cvs-migration.html b/cvs-migration.html index 7958e0284..058b5440e 100644 --- a/cvs-migration.html +++ b/cvs-migration.html @@ -579,7 +579,7 @@ that contain this changed "if" statement:

diff --git a/diffcore.html b/diffcore.html index 4c3b6af72..83eabfa2c 100644 --- a/diffcore.html +++ b/diffcore.html @@ -3,7 +3,7 @@ - + -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 branch -d 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: Add option to repack all objects.
-  * [rc] Merge refs/heads/master from .
----
- +  [pu] git-repack: 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....
-
-
+

caret=^ +startsb=[ +endsb=]

+

diff --git a/repository-layout.html b/repository-layout.html index ac7245125..3a571c8df 100644 --- a/repository-layout.html +++ b/repository-layout.html @@ -475,9 +475,11 @@ info/exclude

This file, by convention among Porcelains, stores the - exclude pattern list. git status looks at it, but - otherwise it is not looked at by any of the core git - commands. + exclude pattern list. .gitignore is the per-directory + ignore file. git status, git add, git rm and git + clean look at it but the core git commands do not look + at it. See also: git-ls-files(1) —exclude-from + and —exclude-per-directory.

@@ -521,7 +523,7 @@ logs/refs/tags/name diff --git a/repository-layout.txt b/repository-layout.txt index b52dfdc30..275d18bb5 100644 --- a/repository-layout.txt +++ b/repository-layout.txt @@ -120,9 +120,11 @@ info/grafts:: info/exclude:: This file, by convention among Porcelains, stores the - exclude pattern list. `git status` looks at it, but - otherwise it is not looked at by any of the core git - commands. + exclude pattern list. `.gitignore` is the per-directory + ignore file. `git status`, `git add`, `git rm` and `git + clean` look at it but the core git commands do not look + at it. See also: gitlink:git-ls-files[1] `--exclude-from` + and `--exclude-per-directory`. remotes:: Stores shorthands to be used to give URL and default diff --git a/tutorial-2.html b/tutorial-2.html index 8be18d1e3..9c46c352a 100644 --- a/tutorial-2.html +++ b/tutorial-2.html @@ -634,7 +634,7 @@ example, creating a new commit.

diff --git a/tutorial.html b/tutorial.html index 6ef57a76c..f8fa2f39a 100644 --- a/tutorial.html +++ b/tutorial.html @@ -701,7 +701,7 @@ digressions that may be interesting at this point are:

diff --git a/urls.txt b/urls.txt index d60b37147..26ecba53f 100644 --- a/urls.txt +++ b/urls.txt @@ -10,20 +10,21 @@ to name the remote repository: - https://host.xz/path/to/repo.git/ - git://host.xz/path/to/repo.git/ - git://host.xz/~user/path/to/repo.git/ -- ssh://host.xz/path/to/repo.git/ -- ssh://host.xz/~user/path/to/repo.git/ -- ssh://host.xz/~/path/to/repo.git +- ssh://{startsb}user@{endsb}host.xz/path/to/repo.git/ +- ssh://{startsb}user@{endsb}host.xz/~user/path/to/repo.git/ +- ssh://{startsb}user@{endsb}host.xz/~/path/to/repo.git =============================================================== -SSH Is the default transport protocol and also supports an -scp-like syntax. Both syntaxes support username expansion, +SSH is the default transport protocol. You can optionally specify +which user to log-in as, and an alternate, scp-like syntax is also +supported. Both syntaxes support username expansion, as does the native git protocol. The following three are identical to the last three above, respectively: =============================================================== -- host.xz:/path/to/repo.git/ -- host.xz:~user/path/to/repo.git/ -- host.xz:path/to/repo.git +- {startsb}user@{endsb}host.xz:/path/to/repo.git/ +- {startsb}user@{endsb}host.xz:~user/path/to/repo.git/ +- {startsb}user@{endsb}host.xz:path/to/repo.git =============================================================== To sync with a local directory, use: