tests/test-merge-force.t
author Idan Kamara <idankk86@gmail.com>
Mon, 25 Jul 2011 15:03:02 +0300
changeset 14927 2aa3e07b2f07
parent 12316 4134686b83e1
child 15619 6c8573dd1b6b
permissions -rw-r--r--
posix, windows: introduce cachestat This class contains a stat result, and possibly other file info to reliably determine between two points in time whether a file has changed. Uniquely identifying a file gives us that reliability because we either atomic rename or append. So one of two will happen: the file 'id' will change, or the size of the file will change. posix implements it simply by calling os.stat() and checking if the result has st_ino. For now on Windows we always assume the path is uncacheable. This can be improved on NTFS due to file IDs: http://msdn.microsoft.com/en-us/library/aa363788(v=vs.85).aspx So we need to find out if a file path is on an NTFS drive, for that we have: - GetVolumeInformation, which unfortunately only works with a root path (but is available on XP) - GetVolumeInformationByHandleW, works on a full file path but requires Vista or higher
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12256
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
     1
  $ hg init
6255
ae83d927c629 add a test for a375ffc2aa1b
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     2
12256
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
     3
  $ echo a > a
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
     4
  $ hg ci -qAm 'add a'
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
     5
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
     6
  $ echo b > b
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
     7
  $ hg ci -qAm 'add b'
6255
ae83d927c629 add a test for a375ffc2aa1b
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     8
12256
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
     9
  $ hg up -qC 0
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    10
  $ hg rm a
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    11
  $ hg ci -m 'rm a'
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    12
  created new head
6255
ae83d927c629 add a test for a375ffc2aa1b
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    13
12256
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    14
  $ hg up -qC 1
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    15
  $ rm a
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    16
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    17
Local deleted a file, remote removed
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    18
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    19
Should fail, since there are deleted files:
6255
ae83d927c629 add a test for a375ffc2aa1b
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    20
12256
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    21
  $ hg merge
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    22
  abort: outstanding uncommitted changes (use 'hg status' to list changes)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12256
diff changeset
    23
  [255]
12256
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    24
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    25
Should succeed with --force:
6255
ae83d927c629 add a test for a375ffc2aa1b
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    26
12256
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    27
  $ hg -v merge --force
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    28
  resolving manifests
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    29
  removing a
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    30
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    31
  (branch merge, don't forget to commit)
6255
ae83d927c629 add a test for a375ffc2aa1b
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    32
12256
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    33
Should show 'a' as removed:
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    34
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    35
  $ hg status
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    36
  R a
6255
ae83d927c629 add a test for a375ffc2aa1b
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    37
12256
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    38
  $ hg ci -m merge
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    39
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    40
Should not show 'a':
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    41
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    42
  $ hg manifest
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    43
  b
2a06cb547be8 tests: unify test-merge-force
Adrian Buehlmann <adrian@cadifra.com>
parents: 6256
diff changeset
    44