mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
19be7012dc
The largefiles extension prevents users from adding a normal file named 'foo' if there is already a largefile with the same name. However, there was a loop-hole: when merging, it was possible to bring in a normal file named 'foo' while also having a '.hglf/foo' file. This patch fixes this by extending the manifest merge to deal with these kinds of conflicts. If there is a normal file 'foo' in the working copy, and the other parent brings in a '.hglf/foo' file, then the user will be prompted to keep the normal file or the largefile. Likewise for the symmetric case where a normal file is brought in via the second parent. The prompt looks like this: $ hg merge foo has been turned into a largefile use (l)argefile or keep as (n)ormal file? After the merge, either the '.hglf/foo' file or the 'foo' file will have been deleted. This would cause status to return output like: $ hg status M foo R foo To fix this, the lfiles_repo.status method is changed so that a removed normal file isn't shown if there is largefile with the same name, and vice versa for largefiles. |
||
---|---|---|
.. | ||
convert | ||
highlight | ||
inotify | ||
largefiles | ||
zeroconf | ||
__init__.py | ||
acl.py | ||
bugzilla.py | ||
children.py | ||
churn.py | ||
color.py | ||
eol.py | ||
extdiff.py | ||
fetch.py | ||
gpg.py | ||
graphlog.py | ||
hgcia.py | ||
hgk.py | ||
interhg.py | ||
keyword.py | ||
mq.py | ||
notify.py | ||
pager.py | ||
patchbomb.py | ||
progress.py | ||
purge.py | ||
rebase.py | ||
record.py | ||
relink.py | ||
schemes.py | ||
share.py | ||
transplant.py | ||
win32mbcs.py | ||
win32text.py |