view tests/test-inotify-issue1542.t @ 18338:384df4db6520

merge: merge file flags together with file content The 'x' flag and the 'l' flag are very different. It is usually not a problem to change the 'x' flag of a normal file independent of the content, but one does not simply change the type of a file to 'l' independent of the content. This removes the fmerge function that merged both 'x' and 'l' independent of content early in the merge process. This correctly introduces some conflicts instead of silent incorrect merges. 3-way flag merge will now be done in the resolve process, right next to file content merge. Conflicts can thus be resolved with (slightly inconvenient) resolve commands like 'resolve f --tool internal:other'. It thus brings us closer to be able to re-solve manifest merge after the merge and avoid prompts during merge. This also removes the "conflicting flags for a - (n)one, e(x)ec or sym(l)ink?" prompt that nobody could answer and that made it easy to mix symlink targets and file contents up. Instead it will give a file merge where a sufficiently clever merge tool can help resolving the issue.
author Mads Kiilerich <mads@kiilerich.com>
date Wed, 09 Jan 2013 02:02:45 +0100
parents 92b2c876a79d
children f7c4eb60b0c3
line wrap: on
line source


  $ "$TESTDIR/hghave" inotify || exit 80
  $ hg init
  $ touch a
  $ mkdir dir
  $ touch dir/b
  $ touch dir/c
  $ echo "[extensions]" >> $HGRCPATH
  $ echo "inotify=" >> $HGRCPATH
  $ hg add dir/c

inserve

  $ hg inserve -d --pid-file=hg.pid 2>&1
  $ cat hg.pid >> "$DAEMON_PIDS"
  $ hg st
  A dir/c
  ? a
  ? dir/b
  ? hg.pid

moving dir out

  $ mv dir ../tmp-test-inotify-issue1542

status

  $ hg st
  ! dir/c
  ? a
  ? hg.pid
  $ sleep 1

Are we able to kill the service? if not, the service died on some error

  $ kill `cat hg.pid`