filemerge: when using in-memory merge, always put backup files in temp dir
Before calling a merge tool, we create a backup of the local side of
the merge. That file can be put in the working copy or in a temporary
directory, depending on the user's config. When we're merging in
memory, we don't want to write to the actual, on-disk working copy, so
we write the file to the in-memory working copy instead. However,
since we don't support external merge tools with in-memory merge, it
makes no difference where the file is actually stored (and if we ever
do add support for external merge tools, then the file clearly can't
live in the in-memory working-copy object anyway). So, since it
doesn't matter where the file is stored, we can simplify by always
putting them in the system's temp directory.
Differential Revision: https://phab.mercurial-scm.org/D12187
#require svn svn-bindings
$ cat >> $HGRCPATH <<EOF
> [extensions]
> convert =
> EOF
$ svnadmin create svn-repo
$ svnadmin load -q svn-repo < "$TESTDIR/svn/tags.svndump"
Convert
$ hg convert --datesort svn-repo A-hg
initializing destination A-hg repository
scanning source...
sorting...
converting...
5 init projA
4 adda
3 changea
2 changea2
1 changea3
0 changea
updating tags
$ cd A-hg
$ hg log -G --template '{rev} {desc|firstline} tags: {tags}\n'
o 6 update tags tags: tip
|
o 5 changea tags: trunk.goodtag
|
o 4 changea3 tags:
|
o 3 changea2 tags: trunk.v1
|
o 2 changea tags:
|
o 1 adda tags:
|
o 0 init projA tags:
$ hg tags -q
tip
trunk.goodtag
trunk.v1
$ cd ..
Convert without tags
$ hg convert --datesort --config convert.svn.tags= svn-repo A-notags-hg
initializing destination A-notags-hg repository
scanning source...
sorting...
converting...
5 init projA
4 adda
3 changea
2 changea2
1 changea3
0 changea
$ hg -R A-notags-hg tags -q
tip