Re: [RFC PATCH] Pass empty file to p4merge where no base is suitable.
- From
Ciaran <ciaranj@gmail.com>
- Date
- May 1, 2011, 22:08 UTC
- Message-ID
- <BANLkTikv0YmB-u74sOrQUQZGQvYJNmBx_w@mail.gmail.com>
- In-Reply-To
- <7v7haarsrd.fsf@alter.siamese.dyndns.org>
On Sun, May 1, 2011 at 10:54 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 23 quoted lines
> Ciaran <ciaranj@gmail.com> writes: > >>> I suspect that you may be able to simply use "$BASE" for that, no? It >>> will be cleaned up when cleanup_temp_files() is run anyway (warning: I do >>> not use mergetool, and I am writing this only from my cursory looking of >>> the script, so take this with a large grain of salt). >> I don't think so, the BASE file isn't created at-all in this scenario afaict. > > Hmm, just like $BASE, your .no-base is not created at all in this scenario > either, but you create it yourself in your patch, and because you picked a > new filename for that temporary file, you also need to worry about > cleaning it up. > > Why can't that temporary file be "$BASE"? That is what I was asking. > Then you would still create an empty file (but see *1*), and can rely on > existing codepaths to clean it up. > > IOW, wouldn't it be far simpler to turn the part you are patching into > these three lines? > > $base_present || >"$BASE" > "$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" "$MERGED" > check_unchanged
Yes, that is a *much* better solution that solves my issue perfectly ;) Patch to follow.
<!-- Snip -->
Show 6 quoted lines
> [Footnote] > > *1* It also may be worth considering to employ the "use either an empty > file or use the common parts of merged files, whichever makes the > merge simpler, as a phony base" technique found in git-merge-one-file. >
I did consider your earlier post on this, but it seems that that perforce's merge client is sufficiently smart enough to do this alignment/matching itself, so the effort isn't required (imho) for this client (which is the client that I'm experiencing 'pain' with atm !
Thanks, - Cj.