tests/test-convert-darcs.t
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Sat, 21 Sep 2013 21:33:29 +0900
changeset 19778 55ef79031009
parent 17448 507e8f94b26a
child 20117 aa9385f983fa
permissions -rw-r--r--
localrepo: make supported features manageable in each repositories individually Before this patch, all localrepositories support same features, because supported features are managed by the class variable "supported" of "localrepository". For example, "largefiles" feature provided by largefiles extension is recognized as supported, by adding the feature name to "supported" of "localrepository". So, commands handling multiple repositories at a time like below misunderstand that such features are supported also in repositories not enabling corresponded extensions: - clone/pull from or push to localhost - recursive execution in subrepo tree "reposetup()" can't be used to fix this problem, because it is invoked after checking whether supported features satisfy ones required in the target repository. So, this patch adds the set object named as "featuresetupfuncs" to "localrepository" to manage hook functions to setup supported features of each repositories. If any functions are added to "featuresetupfuncs", they are invoked, and information about supported features is managed in each repositories individually. This patch also adds checking below: - pull from localhost: whether features supported in the local(= dst) repository satisfies ones required in the remote(= src) - push to localhost: whether features supported in the remote(= dst) repository satisfies ones required in the local(= src) Managing supported features by the class variable means that there is no difference of supported features between each instances of "localrepository" in the same Python process, so such checking is not needed before this patch. Even with this patch, if intermediate bundlefile is used as pulling source, pulling indirectly from the remote repository, which requires features more than ones supported in the local, can't be prevented, because bundlefile has no information about "required features" in it.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5413
719fd175181f Test darcs converter
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     1
12524
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
     2
  $ "$TESTDIR/hghave" darcs || exit 80
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
     3
  $ echo "[extensions]" >> $HGRCPATH
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
     4
  $ echo "convert=" >> $HGRCPATH
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
     5
  $ echo 'graphlog =' >> $HGRCPATH
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
     6
  $ DARCS_EMAIL='test@example.org'; export DARCS_EMAIL
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
     7
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
     8
initialize darcs repo
5520
cc3af86ab6fe test-convert-darcs: skip if we can't find the elementtree module
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5442
diff changeset
     9
12524
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    10
  $ mkdir darcs-repo
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    11
  $ cd darcs-repo
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    12
  $ darcs init
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    13
  $ echo a > a
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    14
  $ darcs record -a -l -m p0
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    15
  Finished recording patch 'p0'
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    16
  $ cd ..
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    17
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    18
branch and update
12393
84ceedcfeb6a convert/darcs: improve unsupported format detection (issue2172)
Patrick Mezard <pmezard@gmail.com>
parents: 12252
diff changeset
    19
16698
26756d9d8143 tests: make test-convert-darcs.t happier with darcs 2.8.0
Bryan O'Sullivan <bryano@fb.com>
parents: 15335
diff changeset
    20
  $ darcs get -q darcs-repo darcs-clone >/dev/null
12524
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    21
  $ cd darcs-clone
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    22
  $ echo c >> a
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    23
  $ echo c > c
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    24
  $ darcs record -a -l -m p1.1
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    25
  Finished recording patch 'p1.1'
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    26
  $ cd ..
5413
719fd175181f Test darcs converter
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    27
17448
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
    28
skip if we can't import elementtree
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
    29
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
    30
  $ if hg convert darcs-repo darcs-dummy 2>&1 | grep ElementTree > /dev/null; then
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
    31
  >     echo 'skipped: missing feature: elementtree module'
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
    32
  >     exit 80
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
    33
  > fi
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
    34
12524
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    35
update source
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    36
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    37
  $ cd darcs-repo
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    38
  $ echo b >> a
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    39
  $ echo b > b
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    40
  $ darcs record -a -l -m p1.2
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    41
  Finished recording patch 'p1.2'
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    42
16698
26756d9d8143 tests: make test-convert-darcs.t happier with darcs 2.8.0
Bryan O'Sullivan <bryano@fb.com>
parents: 15335
diff changeset
    43
  $ darcs pull -q -a --no-set-default ../darcs-clone
26756d9d8143 tests: make test-convert-darcs.t happier with darcs 2.8.0
Bryan O'Sullivan <bryano@fb.com>
parents: 15335
diff changeset
    44
  Backing up ./a(*) (glob)
12524
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    45
  We have conflicts in the following files:
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    46
  ./a
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    47
  $ sleep 1
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    48
  $ echo e > a
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    49
  $ echo f > f
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    50
  $ mkdir dir
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    51
  $ echo d > dir/d
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    52
  $ echo d > dir/d2
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    53
  $ darcs record -a -l -m p2
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    54
  Finished recording patch 'p2'
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    55
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    56
test file and directory move
5413
719fd175181f Test darcs converter
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    57
12524
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    58
  $ darcs mv f ff
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    59
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    60
Test remove + move
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    61
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    62
  $ darcs remove dir/d2
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    63
  $ rm dir/d2
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    64
  $ darcs mv dir dir2
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    65
  $ darcs record -a -l -m p3
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    66
  Finished recording patch 'p3'
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    67
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    68
The converter does not currently handle patch conflicts very well.
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    69
When they occur, it reverts *all* changes and moves forward,
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    70
letting the conflict resolving patch fix collisions.
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    71
Unfortunately, non-conflicting changes, like the addition of the
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    72
"c" file in p1.1 patch are reverted too.
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    73
Just to say that manifest not listing "c" here is a bug.
5413
719fd175181f Test darcs converter
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    74
15335
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    75
  $ cd ..
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    76
  $ hg convert darcs-repo darcs-repo-hg
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    77
  initializing destination darcs-repo-hg repository
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    78
  scanning source...
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    79
  sorting...
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    80
  converting...
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    81
  4 p0
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    82
  3 p1.2
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    83
  2 p1.1
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    84
  1 p2
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    85
  0 p3
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    86
  $ hg log -R darcs-repo-hg -g --template '{rev} "{desc|firstline}" ({author}) files: {files}\n' "$@"
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    87
  4 "p3" (test@example.org) files: dir/d dir/d2 dir2/d f ff
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    88
  3 "p2" (test@example.org) files: a dir/d dir/d2 f
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    89
  2 "p1.1" (test@example.org) files: 
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    90
  1 "p1.2" (test@example.org) files: a b
52a137edc060 tests: darcs > 2.5 got "smart" about encoding, disable encoding tests
Matt Mackall <mpm@selenic.com>
parents: 14116
diff changeset
    91
  0 "p0" (test@example.org) files: a
12718
372abc799caa merge with stable
Matt Mackall <mpm@selenic.com>
parents: 12717 12524
diff changeset
    92
12524
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    93
  $ hg up -q -R darcs-repo-hg
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    94
  $ hg -R darcs-repo-hg manifest --debug
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    95
  7225b30cdf38257d5cc7780772c051b6f33e6d6b 644   a
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    96
  1e88685f5ddec574a34c70af492f95b6debc8741 644   b
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    97
  37406831adc447ec2385014019599dfec953c806 644   dir2/d
8773cac3a455 tests: unify test-convert-darcs
Matt Mackall <mpm@selenic.com>
parents: 12407
diff changeset
    98
  b783a337463792a5c7d548ad85a7d3253c16ba8c 644   ff
17448
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
    99
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
   100
#if no-outer-repo
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
   101
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
   102
try converting darcs1 repository
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
   103
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
   104
  $ hg clone -q "$TESTDIR/bundles/darcs1.hg" darcs
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
   105
  $ hg convert -s darcs darcs/darcs1 2>&1 | grep darcs-1.0
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
   106
  darcs-1.0 repository format is unsupported, please upgrade
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
   107
507e8f94b26a test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu>
parents: 17015
diff changeset
   108
#endif