view tests/test-merge9.t @ 28796:08a686a4a0a2

hghave: add cvsnt cvsnt is a maintained commercial fork of cvs https://en.wikipedia.org/wiki/CVSNT It is possible to build a version of it from sources (github), it requires libpcre and libltdl (libtool). We already have a test that relates to cvsnt: test-convert-cvsnt-mergepoints.t cvsnt installs: cvs, cvslockd, cvsnt, cvsscript I think we should definitely have a check for cvsnt because it makes the version checks for cvs make a lot more sense. When I use the version I built, cvs --version says: """ Concurrent Versions System (CVSNT) 2.5.05 (Gan) Build 3744 (Suite) (client/server) CVSNT 2.5.05 (Apr 4 2016) Copyright (c) 2008 March Hare Software Ltd. see http://www.march-hare.com/cvspro CVS Copyright (c) 1989-2001 Brian Berliner, david d `zoo' zuhn, Jeff Polk, and other authors CVSNT Copyright (c) 1999-2008 Tony Hoyle and others see http://www.cvsnt.org Commercial support and training provided by March Hare Software Ltd. see http://www.march-hare.com/cvspro CVSNT may be copied only under the terms of the GNU General Public License v2, a copy of which can be found with the CVS distribution. The CVSNT Application API is licensed under the terms of the GNU Library (or Lesser) General Public License. Specify the --help option for further information about CVS """
author timeless <timeless@mozdev.org>
date Mon, 04 Apr 2016 06:27:12 +0000
parents 8e6d5b7317e6
children 41ef02ba329b
line wrap: on
line source

test that we don't interrupt the merge session if
a file-level merge failed

  $ hg init repo
  $ cd repo

  $ echo foo > foo
  $ echo a > bar
  $ hg ci -Am 'add foo'
  adding bar
  adding foo

  $ hg mv foo baz
  $ echo b >> bar
  $ echo quux > quux1
  $ hg ci -Am 'mv foo baz'
  adding quux1

  $ hg up -qC 0
  $ echo >> foo
  $ echo c >> bar
  $ echo quux > quux2
  $ hg ci -Am 'change foo'
  adding quux2
  created new head

test with the rename on the remote side
  $ HGMERGE=false hg merge
  merging bar
  merging foo and baz to baz
  merging bar failed!
  1 files updated, 1 files merged, 0 files removed, 1 files unresolved
  use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
  [1]
  $ hg resolve -l
  U bar
  R baz

test with the rename on the local side
  $ hg up -C 1
  3 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ HGMERGE=false hg merge
  merging bar
  merging baz and foo to baz
  merging bar failed!
  1 files updated, 1 files merged, 0 files removed, 1 files unresolved
  use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
  [1]

show unresolved
  $ hg resolve -l
  U bar
  R baz

unmark baz
  $ hg resolve -u baz

show
  $ hg resolve -l
  U bar
  U baz
  $ hg st
  M bar
  M baz
  M quux2
  ? bar.orig

re-resolve baz
  $ hg resolve baz
  merging baz and foo to baz

after resolve
  $ hg resolve -l
  U bar
  R baz

resolve all warning
  $ hg resolve
  abort: no files or directories specified
  (use --all to re-merge all unresolved files)
  [255]

resolve all
  $ hg resolve -a
  merging bar
  warning: conflicts while merging bar! (edit, then use 'hg resolve --mark')
  [1]

after
  $ hg resolve -l
  U bar
  R baz

  $ cd ..