{"thread":{"id":"13638","subject":"git-rerere: Usage question","startedAt":"2008-05-23T14:27:54Z","lastAt":"2008-05-24T12:06:32Z","messageCount":4,"participants":["Dirk Süsserott","Junio C Hamano","Mike Hommey"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"77556","messageId":"4836D46A.7070807@dirk.my1.cc","threadId":"13638","inReplyTo":null,"subject":"git-rerere: Usage question","fromName":"Dirk Süsserott","fromEmail":"newsletter@dirk.my1.cc","sentAt":"2008-05-23T14:27:54Z","receivedAt":"2008-05-23T14:27:54Z","isPatch":false,"sender":{"key":"newsletter@dirk.my1.cc","avatar":null},"body":"I recently read the docs for 'git-rerere'. Seems a cool feature.\nBut I'm not quite sure whether I understood it right. I think\nI understood what it does but I didn't understand when to call\nit.\n\nIs it true that it's not neccessary to issue that command manually\nwhen I configured \"rerere.enabled true\"? The docs say that I *can*\ncall it but it also says that git-merge and git-rebase call it\nautomatically whenever needed.\n\nThus it seems to be one of the plumbing tools to me, which\nI only call in case of emergency. Am I right?\n\n    Dirk\n"},{"id":"77622","messageId":"7vwslkpo1o.fsf@gitster.siamese.dyndns.org","threadId":"13638","inReplyTo":"4836D46A.7070807@dirk.my1.cc","subject":"Re: git-rerere: Usage question","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-05-24T00:02:11Z","receivedAt":"2008-05-24T00:02:11Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Dirk Süsserott <newsletter@dirk.my1.cc> writes:\n\n> I recently read the docs for 'git-rerere'. Seems a cool feature.\n> But I'm not quite sure whether I understood it right. I think\n> I understood what it does but I didn't understand when to call\n> it.\n>\n> Is it true that it's not neccessary to issue that command manually\n> when I configured \"rerere.enabled true\"? The docs say that I *can*\n> call it but it also says that git-merge and git-rebase call it\n> automatically whenever needed.\n>\n> Thus it seems to be one of the plumbing tools to me, which\n> I only call in case of emergency. Am I right?\n\nIt started as an independent, opt-in feature, that people _could_ use\nmanually.  In that mode:\n\n (1) when you see \"git merge\" stop at a conflict, you say \"git rerere\",\n     expecting one of two benefits:\n\n     (1-a) If the conflict is something you have used rerere on\n     previously, this may apply the previous resolution.\n\n     (1-b) Otherwise, the conflict is recorded, so that you can record the\n     corresponding resolution after manually resolving it.\n\n (2) after having to manually resolve the conflict, if you did \"git\n     rerere\" in step (1), you can say \"git rerere\" again to record it.\n\nThese days, rerere is pretty much automatic in that rerere is called\nautomatically from places that generate conflicts (e.g. \"git merge\") for\npurpose of (1), and from places that the user tells git that the conflicts\nare now resolved (e.g. \"git commit\") for purpose of (2).\n\nSo it is not even for \"emergency\" anymore.\n\nThe only time you still might want to call it yourself is when you are not\ncomfortable with the conflict resolution you just did (iow, if it later\nturns out to be a bad resolution, you may regret recording that incorrect\nresolution).  In such a case, you would say \"git rerere clear\" before\ncommitting the result (in which time, \"rerere\" automatically try to record\nbut because of earlier \"rerere clear\" it does not find anything to\nrecord).\n"},{"id":"77644","messageId":"20080524075436.GA4377@glandium.org","threadId":"13638","inReplyTo":"7vwslkpo1o.fsf@gitster.siamese.dyndns.org","subject":"Re: git-rerere: Usage question","fromName":"Mike Hommey","fromEmail":"mh@glandium.org","sentAt":"2008-05-24T07:54:36Z","receivedAt":"2008-05-24T07:54:36Z","isPatch":false,"sender":{"key":"mh@glandium.org","avatar":"https://avatars.githubusercontent.com/u/1038527?v=4"},"body":"On Fri, May 23, 2008 at 05:02:11PM -0700, Junio C Hamano wrote:\n> These days, rerere is pretty much automatic in that rerere is called\n> automatically from places that generate conflicts (e.g. \"git merge\") for\n> purpose of (1), and from places that the user tells git that the conflicts\n> are now resolved (e.g. \"git commit\") for purpose of (2).\n\nNote that it is not totally automatic for most people because the\ndefault is to enable only if the .git/rr_cache directory exists, and\nneither git init nor git clone create this directory.\n\nYou still have to set rerere.enabled yourself.\n\nMike\n"},{"id":"77651","messageId":"483804C8.8020703@dirk.my1.cc","threadId":"13638","inReplyTo":"20080524075436.GA4377@glandium.org","subject":"Re: git-rerere: Usage question","fromName":"Dirk Süsserott","fromEmail":"newsletter@dirk.my1.cc","sentAt":"2008-05-24T12:06:32Z","receivedAt":"2008-05-24T12:06:32Z","isPatch":false,"sender":{"key":"newsletter@dirk.my1.cc","avatar":null},"body":"Mike Hommey schrieb:\n> On Fri, May 23, 2008 at 05:02:11PM -0700, Junio C Hamano wrote:\n>   \n>> These days, rerere is pretty much automatic in that rerere is called\n>> automatically from places that generate conflicts (e.g. \"git merge\") for\n>> purpose of (1), and from places that the user tells git that the conflicts\n>> are now resolved (e.g. \"git commit\") for purpose of (2).\n>>     \n>\n> Note that it is not totally automatic for most people because the\n> default is to enable only if the .git/rr_cache directory exists, and\n> neither git init nor git clone create this directory.\n>   \ngit-gc does -- at least if rerere.enabled is set.\nThanks for the pointer that this directory must exist.\nProbably it gets auto-created when needed?\nI didn't check that out coz I currently have nothing\nto merge with :-(\nA simple no-op \"git pull\" (Already up-to-date)\ndid *not* create the directory, but git-gc did.\n\n    Dirk\n"}]}