Add Documentation/CodingGuidelines
[gitweb.git] / Documentation / git-rerere.txt
index 116dca4c0668488a0ba55b43a10e89c40f087b59..c4d4263238e5b7c6dff705de5d8552a577fc35d6 100644 (file)
@@ -3,11 +3,11 @@ git-rerere(1)
 
 NAME
 ----
-git-rerere - Reuse recorded resolve
+git-rerere - Reuse recorded resolution of conflicted merges
 
 SYNOPSIS
 --------
-'git-rerere' [clear|diff|status]
+'git-rerere' [clear|diff|status|gc]
 
 DESCRIPTION
 -----------
@@ -23,7 +23,7 @@ initial manual merge, and later by noticing the same automerge
 results and applying the previously recorded hand resolution.
 
 [NOTE]
-You need to create `$GIT_DIR/rr-cache` directory to enable this
+You need to set the config variable rerere.enabled to enable this
 command.
 
 
@@ -38,7 +38,7 @@ its working state.
 
 This resets the metadata used by rerere if a merge resolution is to be
 is aborted.  Calling gitlink:git-am[1] --skip or gitlink:git-rebase[1]
-[--skip|--abort] will automatcally invoke this command.
+[--skip|--abort] will automatically invoke this command.
 
 'diff'::
 
@@ -55,7 +55,11 @@ for resolutions.
 'gc'::
 
 This command is used to prune records of conflicted merge that
-occurred long time ago.
+occurred long time ago.  By default, conflicts older than 15
+days that you have not recorded their resolution, and conflicts
+older than 60 days, are pruned.  These are controlled with
+`gc.rerereunresolved` and `gc.rerereresolved` configuration
+variables.
 
 
 DISCUSSION
@@ -77,7 +81,7 @@ One way to do it is to pull master into the topic branch:
 
 ------------
        $ git checkout topic
-       $ git pull . master
+       $ git merge master
 
               o---*---o---+ topic
              /           /
@@ -99,10 +103,10 @@ in which case the final commit graph would look like this:
 
 ------------
        $ git checkout topic
-       $ git pull . master
+       $ git merge master
        $ ... work on both topic and master branches
        $ git checkout master
-       $ git pull . topic
+       $ git merge topic
 
               o---*---o---+---o---o topic
              /           /         \
@@ -122,11 +126,11 @@ top of the tip before the test merge:
 
 ------------
        $ git checkout topic
-       $ git pull . master
+       $ git merge master
        $ git reset --hard HEAD^ ;# rewind the test merge
        $ ... work on both topic and master branches
        $ git checkout master
-       $ git pull . topic
+       $ git merge topic
 
               o---*---o-------o---o topic
              /                     \
@@ -159,8 +163,7 @@ If this three-way merge resolves cleanly, the result is written
 out to your working tree file, so you would not have to manually
 resolve it.  Note that `git-rerere` leaves the index file alone,
 so you still need to do the final sanity checks with `git diff`
-(or `git diff -c`) and `git update-index` when you are
-satisfied.
+(or `git diff -c`) and `git add` when you are satisfied.
 
 As a convenience measure, `git-merge` automatically invokes
 `git-rerere` when it exits with a failed automerge, which
@@ -168,7 +171,7 @@ records it if it is a new conflict, or reuses the earlier hand
 resolve when it is not.  `git-commit` also invokes `git-rerere`
 when recording a merge result.  What this means is that you do
 not have to do anything special yourself (Note: you still have
-to create `$GIT_DIR/rr-cache` directory to enable this command).
+to set the config variable rerere.enabled to enable this command).
 
 In our example, when you did the test merge, the manual
 resolution is recorded, and it will be reused when you do the