mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 23:07:18 +03:00
patch: ensure valid git diffs if source/destination file is missing (issue4046)
This is arguably a workaround, a better fix may be in the repo to ensure that it won't list a file 'modified' unless there is a file context for the previous version.
This commit is contained in:
parent
6371252cb7
commit
6055bcdec2
@ -1703,7 +1703,7 @@ def trydiff(repo, revs, ctx1, ctx2, modified, added, removed,
|
||||
tn = getfilectx(f, ctx2).data()
|
||||
a, b = f, f
|
||||
if opts.git or losedatafn:
|
||||
if f in added:
|
||||
if f in added or (f in modified and to is None):
|
||||
mode = gitmode[ctx2.flags(f)]
|
||||
if f in copy or f in copyto:
|
||||
if opts.git:
|
||||
@ -1739,7 +1739,7 @@ def trydiff(repo, revs, ctx1, ctx2, modified, added, removed,
|
||||
if not opts.git and not tn:
|
||||
# regular diffs cannot represent new empty file
|
||||
losedatafn(f)
|
||||
elif f in removed:
|
||||
elif f in removed or (f in modified and tn is None):
|
||||
if opts.git:
|
||||
# have we already reported a copy above?
|
||||
if ((f in copy and copy[f] in added
|
||||
|
@ -360,3 +360,23 @@ There should be a trailing TAB if there are spaces in the file name:
|
||||
+foo
|
||||
$ hg ci -m 'add filename with spaces'
|
||||
|
||||
Additions should be properly marked even in the middle of a merge
|
||||
|
||||
$ hg up -r -2
|
||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
||||
$ echo "New File" >> inmerge
|
||||
$ hg add inmerge
|
||||
$ hg ci -m "file in merge"
|
||||
created new head
|
||||
$ hg up 23
|
||||
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
||||
$ hg merge
|
||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
(branch merge, don't forget to commit)
|
||||
$ hg diff -g
|
||||
diff --git a/inmerge b/inmerge
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/inmerge
|
||||
@@ -0,0 +1,1 @@
|
||||
+New File
|
||||
|
@ -228,6 +228,7 @@ ensure that we have a merge with unresolved conflicts
|
||||
+a
|
||||
+>>>>>>> other
|
||||
diff --git a/b.rename/b b/b.rename/b
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/b.rename/b
|
||||
@@ -0,0 +1,1 @@
|
||||
@ -239,6 +240,7 @@ ensure that we have a merge with unresolved conflicts
|
||||
@@ -1,1 +0,0 @@
|
||||
-b
|
||||
diff --git a/c.copy b/c.copy
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/c.copy
|
||||
@@ -0,0 +1,1 @@
|
||||
|
Loading…
Reference in New Issue
Block a user