tests/test-options.t
author Pulkit Goyal <7895pulkit@gmail.com>
Sun, 18 Mar 2018 23:48:06 +0530
changeset 3660 f018656ca3bf
parent 1806 9f42f819267b
child 3946 8fcee1e65e29
permissions -rw-r--r--
amend: add a new flag `--patch` to `hg amend` This patch adds a new flag `--patch` to `hg amend` which pops up an editor with the patch of working directory parent which you can change, and when you exit the editor the patch with changes is applied to current working directory with old changeset being obsoleted in favour of new one created by the applied patch. If supplied filenames, only those filenames are present in the popped editor and rest files stay the same way in the commit as they were. The extension of the file which opens up in editor is '.diff', we cannot have it as '.patch' as there will be develwarns related to that. We need to change to patch core and undo some change to achieve this. The implementation does not use any core API rather it has picked chunks from API which are required. One main reason to not use core import API is that we have to change wdir parent before using patch.patch() which I will like to avoid to make sure we handle merge cases too. While writing this patch I have spend lot of time try to use internal API's to work for this but none of them served the purpose well. If I have time in future and work on similar problem again, I am going to write better high-level API's which uses patchstore to achieve this. A new test file test-amend-patch.t which contains a lot of testing of the feature.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1226
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
     1
  $ cat >> $HGRCPATH <<EOF
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
     2
  > [ui]
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
     3
  > logtemplate={rev}:{node|short}[{bookmarks}] ({obsolete}/{phase}) {desc|firstline}\n
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
     4
  > [extensions]
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
     5
  > EOF
1806
9f42f819267b evolve: move the extensions to 'hgext3rd'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1226
diff changeset
     6
  $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
1226
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
     7
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
     8
  $ mkcommit() {
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
     9
  >    echo "$1" > "$1"
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    10
  >    hg add "$1"
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    11
  >    hg ci -m "add $1"
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    12
  > }
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    13
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    14
  $ hg init repo
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    15
  $ cd repo
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    16
  $ mkcommit a
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    17
  $ mkcommit b
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    18
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    19
test disabling commands
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    20
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    21
  $ cat >> .hg/hgrc <<EOF
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    22
  > [experimental]
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    23
  > evolution=createmarkers
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    24
  >   allowunstable
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    25
  >   exchange
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    26
  > EOF
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    27
  $ hg prune | head -n 2
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    28
  hg: unknown command 'prune'
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    29
  Mercurial Distributed SCM
901d2f4b21a9 config: allow disabling commands
Durham Goode <durham@fb.com>
parents:
diff changeset
    30