Skip to content
Snippets Groups Projects
Commit d4e715d2 authored by Pierre-Yves David's avatar Pierre-Yves David :octopus:
Browse files

dirstate: remove a update_file's special case for tracked file with p2 data

This case was fishy and can be dealt with by passing more accurate data a higher
level.

This clarify the API and prepare for a larger rework of the data we feeds to
the dirstate.
parent dcd97b08
No related branches found
No related tags found
No related merge requests found
......@@ -226,16 +226,7 @@
elif (p1_tracked or p2_tracked) and not wc_tracked:
pass
elif clean_p2 and wc_tracked:
if p1_tracked or self.get(filename) is not None:
# XXX the `self.get` call is catching some case in
# `test-merge-remove.t` where the file is tracked in p1, the
# p1_tracked argument is False.
#
# In addition, this seems to be a case where the file is marked
# as merged without actually being the result of a merge
# action. So thing are not ideal here.
merged = True
clean_p2 = False
pass
elif not p1_tracked and p2_tracked and wc_tracked:
clean_p2 = True
elif possibly_dirty:
......
......@@ -796,5 +796,7 @@
for f, args, msg in actions.get(ACTION_GET, []):
if branchmerge:
# tracked in p1 can be True also but update_file should not care
old_entry = repo.dirstate.get_entry(f)
p1_tracked = old_entry.any_tracked and not old_entry.added
repo.dirstate.update_file(
f,
......@@ -799,5 +801,5 @@
repo.dirstate.update_file(
f,
p1_tracked=False,
p1_tracked=p1_tracked,
p2_tracked=True,
wc_tracked=True,
......@@ -802,6 +804,7 @@
p2_tracked=True,
wc_tracked=True,
clean_p2=True,
clean_p2=not p1_tracked,
merged=p1_tracked,
)
else:
parentfiledata = getfiledata[f] if getfiledata else None
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment