X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=Documentation%2Fgit-rerere.txt;h=c4d4263238e5b7c6dff705de5d8552a577fc35d6;hb=e076a0e71f25430205d0437c177fd12a7018e5ad;hp=116dca4c0668488a0ba55b43a10e89c40f087b59;hpb=37818d7db070f67a20df58ac7d5e04cc63ef1867;p=git.git diff --git a/Documentation/git-rerere.txt b/Documentation/git-rerere.txt index 116dca4c0..c4d426323 100644 --- a/Documentation/git-rerere.txt +++ b/Documentation/git-rerere.txt @@ -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