view tests/test-pathconflicts-basic.t @ 34548:b4955650eb57

merge: add merge action 'pr' to rename files during update Add a new merge action to handle a path conflict by renaming the conflicting file to a safe name. The rename is just to avoid problems on the filesystem. The conflict is still considered unresolved until the user marks the original path as resolved. Differential Revision: https://phab.mercurial-scm.org/D777
author Mark Thomas <mbthomas@fb.com>
date Mon, 02 Oct 2017 14:05:30 -0700
parents 34c8080d12ac
children 33c8a6837181
line wrap: on
line source

  $ hg init repo
  $ cd repo
  $ echo base > base
  $ hg add base
  $ hg commit -m "base"
  $ hg bookmark -i base
  $ echo 1 > a
  $ hg add a
  $ hg commit -m "file"
  $ hg bookmark -i file
  $ echo 2 > a
  $ hg commit -m "file2"
  $ hg bookmark -i file2
  $ hg up -q 0
  $ mkdir a
  $ echo 2 > a/b
  $ hg add a/b
  $ hg commit -m "dir"
  created new head
  $ hg bookmark -i dir

Basic merge - local file conflicts with remote directory

  $ hg up -q file
  $ hg bookmark -i
  $ hg merge --verbose dir
  resolving manifests
  getting a/b
  abort: *: '$TESTTMP/repo/a/b' (glob)
  [255]
  $ hg update --clean .
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved

Basic update - local directory conflicts with remote file

  $ hg up -q 0
  $ mkdir a
  $ echo 3 > a/b
  $ hg up file
  abort: *: '$TESTTMP/repo/a' (glob)
  [255]
  $ hg up --clean file
  abort: *: '$TESTTMP/repo/a' (glob)
  [255]

Repo is in a very bad state now - recover manually

  $ rm -r a
  $ hg up -q --clean 0

Basic update - untracked file conflicts with remote directory

  $ hg up -q 0
  $ echo untracked > a
  $ hg up --config merge.checkunknown=warn dir
  abort: *: '$TESTTMP/repo/a/b' (glob)
  [255]

Repo is in a very bad state now - recover manually

  $ rm -f a
  $ hg up -q --clean 0

Basic clean update - local directory conflicts with changed remote file

  $ hg up -q file
  $ rm a
  $ mkdir a
  $ echo 4 > a/b
  $ hg up file2
  abort: *: '$TESTTMP/repo/a' (glob)
  [255]
  $ hg up --clean file2
  abort: *: '$TESTTMP/repo/a' (glob)
  [255]

Repo is in a very bad state now - recover manually

  $ rm -r a
  $ hg up -q --clean 0