Show More
@@ -0,0 +1,53 b'' | |||
|
1 | This file focuses mainly on updating largefiles in the working | |
|
2 | directory (and ".hg/largefiles/dirstate") | |
|
3 | ||
|
4 | $ cat >> $HGRCPATH <<EOF | |
|
5 | > [ui] | |
|
6 | > merge = internal:fail | |
|
7 | > [extensions] | |
|
8 | > largefiles = | |
|
9 | > EOF | |
|
10 | ||
|
11 | $ hg init repo | |
|
12 | $ cd repo | |
|
13 | ||
|
14 | $ echo large1 > large1 | |
|
15 | $ echo large2 > large2 | |
|
16 | $ hg add --large large1 large2 | |
|
17 | $ echo normal1 > normal1 | |
|
18 | $ hg add normal1 | |
|
19 | $ hg commit -m '#0' | |
|
20 | $ echo 'large1 in #1' > large1 | |
|
21 | $ echo 'normal1 in #1' > normal1 | |
|
22 | $ hg commit -m '#1' | |
|
23 | $ hg update -q -C 0 | |
|
24 | $ echo 'large2 in #2' > large2 | |
|
25 | $ hg commit -m '#2' | |
|
26 | created new head | |
|
27 | ||
|
28 | Test that "hg merge" updates largefiles from "other" correctly | |
|
29 | ||
|
30 | (getting largefiles from "other" normally) | |
|
31 | ||
|
32 | $ hg status -A large1 | |
|
33 | C large1 | |
|
34 | $ cat large1 | |
|
35 | large1 | |
|
36 | $ cat .hglf/large1 | |
|
37 | 4669e532d5b2c093a78eca010077e708a071bb64 | |
|
38 | $ hg merge --config debug.dirstate.delaywrite=2 | |
|
39 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
40 | (branch merge, don't forget to commit) | |
|
41 | getting changed largefiles | |
|
42 | 1 largefiles updated, 0 removed | |
|
43 | $ hg status -A large1 | |
|
44 | M large1 | |
|
45 | $ cat large1 | |
|
46 | large1 in #1 | |
|
47 | $ cat .hglf/large1 | |
|
48 | 58e24f733a964da346e2407a2bee99d9001184f5 | |
|
49 | $ hg diff -c 1 --nodates .hglf/large1 | grep '^[+-][0-9a-z]' | |
|
50 | -4669e532d5b2c093a78eca010077e708a071bb64 | |
|
51 | +58e24f733a964da346e2407a2bee99d9001184f5 | |
|
52 | ||
|
53 | $ cd .. |
@@ -509,12 +509,15 b' def updatelfiles(ui, repo, filelist=None' | |||
|
509 | 509 | |
|
510 | 510 | updated += update1 |
|
511 | 511 | |
|
512 |
sta |
|
|
512 | standin = lfutil.standin(lfile) | |
|
513 | if standin in repo.dirstate: | |
|
514 | stat = repo.dirstate._map[standin] | |
|
515 | state, mtime = stat[0], stat[3] | |
|
516 | else: | |
|
517 | state, mtime = '?', -1 | |
|
513 | 518 | if state == 'n': |
|
514 | # When rebasing, we need to synchronize the standin and the | |
|
515 | # largefile, because otherwise the largefile will get reverted. | |
|
516 | # But for commit's sake, we have to mark the file as unclean. | |
|
517 | if getattr(repo, "_isrebasing", False): | |
|
519 | if mtime < 0: | |
|
520 | # state 'n' doesn't ensure 'clean' in this case | |
|
518 | 521 | lfdirstate.normallookup(lfile) |
|
519 | 522 | else: |
|
520 | 523 | lfdirstate.normal(lfile) |
General Comments 0
You need to be logged in to leave comments.
Login now