mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
linkrev: use the right manifest content when adjusting linrev (issue4499)
When the manifest revision is stored as a delta against a non-parent revision, '_adjustlinkrev' could miss some file update because it was using the delta only. We now use the 'fastread' method that uses the delta only when it makes sense. A test showcasing on the of possible issue have been added.
This commit is contained in:
parent
4accabb1fb
commit
dc490d9ff6
@ -49,7 +49,7 @@ def _adjustlinkrev(repo, path, filelog, fnode, srcrev, inclusive=False):
|
||||
if path in ac[3]: # checking the 'files' field.
|
||||
# The file has been touched, check if the content is similar
|
||||
# to the one we search for.
|
||||
if fnode == ma.readdelta(ac[0]).get(path):
|
||||
if fnode == ma.readfast(ac[0]).get(path):
|
||||
return a
|
||||
# In theory, we should never get out of that loop without a result. But
|
||||
# if manifest uses a buggy file revision (not children of the one it
|
||||
|
@ -1842,3 +1842,62 @@ Even when the file revision is missing from some head:
|
||||
| date: Thu Jan 01 00:00:00 1970 +0000
|
||||
| summary: 1
|
||||
|
|
||||
$ cd ..
|
||||
|
||||
Check proper report when the manifest changes but not the file issue4499
|
||||
------------------------------------------------------------------------
|
||||
|
||||
$ hg init issue4499
|
||||
$ cd issue4499
|
||||
$ for f in A B C D F E G H I J K L M N O P Q R S T U; do
|
||||
> echo 1 > $f;
|
||||
> hg add $f;
|
||||
> done
|
||||
$ hg commit -m 'A1B1C1'
|
||||
$ echo 2 > A
|
||||
$ echo 2 > B
|
||||
$ echo 2 > C
|
||||
$ hg commit -m 'A2B2C2'
|
||||
$ hg up 0
|
||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
$ echo 3 > A
|
||||
$ echo 2 > B
|
||||
$ echo 2 > C
|
||||
$ hg commit -m 'A3B2C2'
|
||||
created new head
|
||||
|
||||
$ hg log -G
|
||||
@ changeset: 2:fe5fc3d0eb17
|
||||
| tag: tip
|
||||
| parent: 0:abf4f0e38563
|
||||
| user: test
|
||||
| date: Thu Jan 01 00:00:00 1970 +0000
|
||||
| summary: A3B2C2
|
||||
|
|
||||
| o changeset: 1:07dcc6b312c0
|
||||
|/ user: test
|
||||
| date: Thu Jan 01 00:00:00 1970 +0000
|
||||
| summary: A2B2C2
|
||||
|
|
||||
o changeset: 0:abf4f0e38563
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
summary: A1B1C1
|
||||
|
||||
|
||||
Log -f on B should reports current changesets
|
||||
|
||||
$ hg log -fG B
|
||||
@ changeset: 2:fe5fc3d0eb17
|
||||
| tag: tip
|
||||
| parent: 0:abf4f0e38563
|
||||
| user: test
|
||||
| date: Thu Jan 01 00:00:00 1970 +0000
|
||||
| summary: A3B2C2
|
||||
|
|
||||
o changeset: 0:abf4f0e38563
|
||||
user: test
|
||||
date: Thu Jan 01 00:00:00 1970 +0000
|
||||
summary: A1B1C1
|
||||
|
||||
$ cd ..
|
||||
|
Loading…
Reference in New Issue
Block a user