tests/test-git-interop.t
author Raphaël Gomès <rgomes@octobus.net>
Tue, 01 Oct 2024 13:49:11 +0200
changeset 52060 8b7123c8947b
parent 50725 7e5be4a7cda7
child 52154 6ca0771b32ef
permissions -rw-r--r--
update: add a Rust fast-path when updating from null (and clean) This case is easy to detect and we have all we need to generate a valid working copy and dirstate entirely in Rust, which speeds things up considerably: On my machine updating a repo of ~300k files goes from 10.00s down to 4.2s, all while consuming 50% less system time, with all caches hot. Something to note is that further improvements will probably happen with the upcoming `InnerRevlog` series that does smarter mmap hanlding, especially for filelogs. Here are benchmark numbers on a machine with only 4 cores (and no SMT enabled) ``` ### data-env-vars.name = heptapod-public-2024-03-25-ds2-pnm # benchmark.name = hg.command.update # bin-env-vars.hg.py-re2-module = default # bin-env-vars.hg.changeset.node = <this change> # benchmark.variants.atomic-update = no # benchmark.variants.scenario = null-to-tip # benchmark.variants.worker = default default: 5.328762 ~~~~~ rust: 1.308654 (-75.44%, -4.02) ### data-env-vars.name = mercurial-devel-2024-03-22-ds2-pnm # benchmark.name = hg.command.update # bin-env-vars.hg.py-re2-module = default # bin-env-vars.hg.changeset.node = <this change> # benchmark.variants.atomic-update = no # benchmark.variants.scenario = null-to-tip # benchmark.variants.worker = default default: 1.693271 ~~~~~ rust: 1.151053 (-32.02%, -0.54) ### data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm # benchmark.name = hg.command.update # bin-env-vars.hg.py-re2-module = default # bin-env-vars.hg.changeset.node = <this change> # benchmark.variants.atomic-update = no # benchmark.variants.scenario = null-to-tip # benchmark.variants.worker = default default: 38.901613 ~~~~~ rust: 11.637880 (-70.08%, -27.26) ### data-env-vars.name = netbsd-xsrc-public-2024-09-19-ds2-pnm # benchmark.name = hg.command.update # bin-env-vars.hg.py-re2-module = default # bin-env-vars.hg.changeset.node = <this change> # benchmark.variants.atomic-update = no # benchmark.variants.scenario = null-to-tip # benchmark.variants.worker = default default: 4.793727 ~~~~~ rust: 1.505905 (-68.59%, -3.29) ```
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
46894
fe34c75f62ab tests: skip test-git-interop.t on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 46840
diff changeset
     1
#require pygit2 no-windows
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
     2
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
     3
Setup:
44493
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
     4
  $ GIT_AUTHOR_NAME='test'; export GIT_AUTHOR_NAME
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
     5
  > GIT_AUTHOR_EMAIL='test@example.org'; export GIT_AUTHOR_EMAIL
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
     6
  > GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0000"; export GIT_AUTHOR_DATE
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
     7
  > GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; export GIT_COMMITTER_NAME
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
     8
  > GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"; export GIT_COMMITTER_EMAIL
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
     9
  > GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"; export GIT_COMMITTER_DATE
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
    10
  > HGUSER="test <test@example.org>"; export HGUSER
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    11
  > count=10
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    12
  > gitcommit() {
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    13
  >    GIT_AUTHOR_DATE="2007-01-01 00:00:$count +0000";
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    14
  >    GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    15
  >    git commit "$@" >/dev/null 2>/dev/null || echo "git commit error"
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    16
  >    count=`expr $count + 1`
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    17
  >  }
46840
6dea77e195d2 test: enforce master to be the default branch in test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46796
diff changeset
    18
  $ git config --global init.defaultBranch master
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    19
44493
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    20
45950
c7c1efdfd4de git: show the version of `pygit2` with verbose version output
Matt Harbison <matt_harbison@yahoo.com>
parents: 45926
diff changeset
    21
  $ hg version -v --config extensions.git= | grep '^[E ]'
c7c1efdfd4de git: show the version of `pygit2` with verbose version output
Matt Harbison <matt_harbison@yahoo.com>
parents: 45926
diff changeset
    22
  Enabled extensions:
c7c1efdfd4de git: show the version of `pygit2` with verbose version output
Matt Harbison <matt_harbison@yahoo.com>
parents: 45926
diff changeset
    23
    git  internal  (pygit2 *) (glob)
c7c1efdfd4de git: show the version of `pygit2` with verbose version output
Matt Harbison <matt_harbison@yahoo.com>
parents: 45926
diff changeset
    24
44493
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    25
Test auto-loading extension works:
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    26
  $ mkdir nogit
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    27
  $ cd nogit
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    28
  $ mkdir .hg
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    29
  $ echo git >> .hg/requires
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    30
  $ hg status
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    31
  abort: repository specified git format in .hg/requires but has no .git directory
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    32
  [255]
46796
38f55ef058fb tests: resort to fix test with newer git versions
Joerg Sonnenberger <joerg@bec.de>
parents: 45992
diff changeset
    33
  $ git config --global init.defaultBranch master
44493
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    34
  $ git init
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    35
  Initialized empty Git repository in $TESTTMP/nogit/.git/
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    36
This status invocation shows some hg gunk because we didn't use
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    37
`hg init --git`, which fixes up .git/info/exclude for us.
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    38
  $ hg status
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    39
  ? .hg/cache/git-commits.sqlite
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    40
  ? .hg/cache/git-commits.sqlite-shm
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    41
  ? .hg/cache/git-commits.sqlite-wal
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    42
  ? .hg/requires
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    43
  $ cd ..
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    44
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    45
Now globally enable extension for the rest of the test:
44951
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44932
diff changeset
    46
  $ cat <<EOF >> $HGRCPATH
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44932
diff changeset
    47
  > [extensions]
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44932
diff changeset
    48
  > git=
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44932
diff changeset
    49
  > [git]
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44932
diff changeset
    50
  > log-index-cache-miss = yes
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44932
diff changeset
    51
  > EOF
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    52
47046
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
    53
Test some edge cases around a commitless repo first
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
    54
  $ mkdir empty
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
    55
  $ cd empty
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
    56
  $ git init
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
    57
  Initialized empty Git repository in $TESTTMP/empty/.git/
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
    58
  $ hg init --git
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
    59
  $ hg heads
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
    60
  [1]
47052
f8fa7ec53517 git: initialize `extra` to have at least the branch name for nullid
Matt Harbison <matt_harbison@yahoo.com>
parents: 47047
diff changeset
    61
  $ hg tip
f8fa7ec53517 git: initialize `extra` to have at least the branch name for nullid
Matt Harbison <matt_harbison@yahoo.com>
parents: 47047
diff changeset
    62
  changeset:   -1:000000000000
f8fa7ec53517 git: initialize `extra` to have at least the branch name for nullid
Matt Harbison <matt_harbison@yahoo.com>
parents: 47047
diff changeset
    63
  tag:         tip
f8fa7ec53517 git: initialize `extra` to have at least the branch name for nullid
Matt Harbison <matt_harbison@yahoo.com>
parents: 47047
diff changeset
    64
  user:        
f8fa7ec53517 git: initialize `extra` to have at least the branch name for nullid
Matt Harbison <matt_harbison@yahoo.com>
parents: 47047
diff changeset
    65
  date:        Thu Jan 01 00:00:00 1970 +0000
f8fa7ec53517 git: initialize `extra` to have at least the branch name for nullid
Matt Harbison <matt_harbison@yahoo.com>
parents: 47047
diff changeset
    66
  
47046
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
    67
  $ cd ..
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
    68
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    69
Make a new repo with git:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    70
  $ mkdir foo
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    71
  $ cd foo
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    72
  $ git init
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    73
  Initialized empty Git repository in $TESTTMP/foo/.git/
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    74
Ignore the .hg directory within git:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    75
  $ echo .hg >> .git/info/exclude
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    76
  $ echo alpha > alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    77
  $ git add alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    78
  $ gitcommit -am 'Add alpha'
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    79
  $ echo beta > beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    80
  $ git add beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    81
  $ gitcommit -am 'Add beta'
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    82
  $ echo gamma > gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    83
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    84
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    85
  Untracked files:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    86
    (use "git add <file>..." to include in what will be committed)
47044
96d295dd4968 tests: stabilize test-git-interop.t for some versions of git
Matt Harbison <matt_harbison@yahoo.com>
parents: 46894
diff changeset
    87
   (?)
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    88
  	gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    89
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    90
  nothing added to commit but untracked files present (use "git add" to track)
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    91
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    92
Without creating the .hg, hg status fails:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    93
  $ hg status
45926
a6f2821cdeab git: update test for hg and git output changes
Augie Fackler <raf@durin42.com>
parents: 45578
diff changeset
    94
  abort: no repository found in '$TESTTMP/foo' (.hg not found)
a6f2821cdeab git: update test for hg and git output changes
Augie Fackler <raf@durin42.com>
parents: 45578
diff changeset
    95
  [10]
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    96
But if you run hg init --git, it works:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    97
  $ hg init --git
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    98
  $ hg id --traceback
44951
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44932
diff changeset
    99
  heads mismatch, rebuilding dagcache
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   100
  3d9be8deba43 tip master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   101
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   102
  ? gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   103
Log works too:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   104
  $ hg log
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   105
  changeset:   1:3d9be8deba43
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   106
  bookmark:    master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   107
  tag:         tip
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   108
  user:        test <test@example.org>
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   109
  date:        Mon Jan 01 00:00:11 2007 +0000
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   110
  summary:     Add beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   111
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   112
  changeset:   0:c5864c9d16fb
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   113
  user:        test <test@example.org>
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   114
  date:        Mon Jan 01 00:00:10 2007 +0000
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   115
  summary:     Add alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   116
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   117
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   118
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   119
and bookmarks:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   120
  $ hg bookmarks
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   121
   * master                    1:3d9be8deba43
49384
3b8fce9a74df git: make sure to fsdecode bookmark names everywhere (issue6723)
Anton Shestakov <av6@dwimlabs.net>
parents: 47053
diff changeset
   122
  $ hg up master
3b8fce9a74df git: make sure to fsdecode bookmark names everywhere (issue6723)
Anton Shestakov <av6@dwimlabs.net>
parents: 47053
diff changeset
   123
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
3b8fce9a74df git: make sure to fsdecode bookmark names everywhere (issue6723)
Anton Shestakov <av6@dwimlabs.net>
parents: 47053
diff changeset
   124
  $ hg bookmarks
3b8fce9a74df git: make sure to fsdecode bookmark names everywhere (issue6723)
Anton Shestakov <av6@dwimlabs.net>
parents: 47053
diff changeset
   125
   * master                    1:3d9be8deba43
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   126
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   127
diff even works transparently in both systems:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   128
  $ echo blah >> alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   129
  $ git diff
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   130
  diff --git a/alpha b/alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   131
  index 4a58007..faed1b7 100644
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   132
  --- a/alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   133
  +++ b/alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   134
  @@ -1* +1,2 @@ (glob)
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   135
   alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   136
  +blah
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   137
  $ hg diff --git
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   138
  diff --git a/alpha b/alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   139
  --- a/alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   140
  +++ b/alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   141
  @@ -1,1 +1,2 @@
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   142
   alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   143
  +blah
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   144
49904
3cbd0e919165 tests: test hg status --all with hgext/git
Anton Shestakov <av6@dwimlabs.net>
parents: 49903
diff changeset
   145
status --all shows all files, including clean:
3cbd0e919165 tests: test hg status --all with hgext/git
Anton Shestakov <av6@dwimlabs.net>
parents: 49903
diff changeset
   146
  $ hg status --all
3cbd0e919165 tests: test hg status --all with hgext/git
Anton Shestakov <av6@dwimlabs.net>
parents: 49903
diff changeset
   147
  M alpha
3cbd0e919165 tests: test hg status --all with hgext/git
Anton Shestakov <av6@dwimlabs.net>
parents: 49903
diff changeset
   148
  ? gamma
3cbd0e919165 tests: test hg status --all with hgext/git
Anton Shestakov <av6@dwimlabs.net>
parents: 49903
diff changeset
   149
  C beta
3cbd0e919165 tests: test hg status --all with hgext/git
Anton Shestakov <av6@dwimlabs.net>
parents: 49903
diff changeset
   150
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   151
Remove a file, it shows as such:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   152
  $ rm alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   153
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   154
  ! alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   155
  ? gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   156
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   157
Revert works:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   158
  $ hg revert alpha --traceback
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   159
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   160
  ? gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   161
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   162
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   163
  Untracked files:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   164
    (use "git add <file>..." to include in what will be committed)
47044
96d295dd4968 tests: stabilize test-git-interop.t for some versions of git
Matt Harbison <matt_harbison@yahoo.com>
parents: 46894
diff changeset
   165
   (?)
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   166
  	gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   167
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   168
  nothing added to commit but untracked files present (use "git add" to track)
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   169
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   170
Add shows sanely in both:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   171
  $ hg add gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   172
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   173
  A gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   174
  $ hg files
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   175
  alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   176
  beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   177
  gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   178
  $ git ls-files
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   179
  alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   180
  beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   181
  gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   182
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   183
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   184
  Changes to be committed:
47044
96d295dd4968 tests: stabilize test-git-interop.t for some versions of git
Matt Harbison <matt_harbison@yahoo.com>
parents: 46894
diff changeset
   185
    (use "git restore --staged <file>..." to unstage) (?)
96d295dd4968 tests: stabilize test-git-interop.t for some versions of git
Matt Harbison <matt_harbison@yahoo.com>
parents: 46894
diff changeset
   186
    (use "git reset HEAD <file>..." to unstage) (?)
96d295dd4968 tests: stabilize test-git-interop.t for some versions of git
Matt Harbison <matt_harbison@yahoo.com>
parents: 46894
diff changeset
   187
   (?)
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   188
  	new file:   gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   189
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   190
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   191
forget does what it should as well:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   192
  $ hg forget gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   193
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   194
  ? gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   195
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   196
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   197
  Untracked files:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   198
    (use "git add <file>..." to include in what will be committed)
47044
96d295dd4968 tests: stabilize test-git-interop.t for some versions of git
Matt Harbison <matt_harbison@yahoo.com>
parents: 46894
diff changeset
   199
   (?)
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   200
  	gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   201
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   202
  nothing added to commit but untracked files present (use "git add" to track)
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   203
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   204
clean up untracked file
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   205
  $ rm gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   206
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   207
hg log FILE
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   208
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   209
  $ echo a >> alpha
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   210
  $ hg ci -m 'more alpha' --traceback --date '1583558723 18000'
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   211
  $ echo b >> beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   212
  $ hg ci -m 'more beta'
44951
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44932
diff changeset
   213
  heads mismatch, rebuilding dagcache
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   214
  $ echo a >> alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   215
  $ hg ci -m 'even more alpha'
44951
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44932
diff changeset
   216
  heads mismatch, rebuilding dagcache
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   217
  $ hg log -G alpha
44951
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44932
diff changeset
   218
  heads mismatch, rebuilding dagcache
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   219
  @  changeset:   4:cf6ddf5d9b8a
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   220
  :  bookmark:    master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   221
  :  tag:         tip
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   222
  :  user:        test <test@example.org>
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   223
  :  date:        Thu Jan 01 00:00:00 1970 +0000
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   224
  :  summary:     even more alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   225
  :
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   226
  o  changeset:   2:5b2c80b027ce
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   227
  :  user:        test <test@example.org>
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   228
  :  date:        Sat Mar 07 00:25:23 2020 -0500
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   229
  :  summary:     more alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   230
  :
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   231
  o  changeset:   0:c5864c9d16fb
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   232
     user:        test <test@example.org>
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   233
     date:        Mon Jan 01 00:00:10 2007 +0000
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   234
     summary:     Add alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   235
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   236
  $ hg log -G beta
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   237
  o  changeset:   3:980d4f79a9c6
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   238
  :  user:        test <test@example.org>
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   239
  :  date:        Thu Jan 01 00:00:00 1970 +0000
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   240
  :  summary:     more beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   241
  :
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   242
  o  changeset:   1:3d9be8deba43
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   243
  |  user:        test <test@example.org>
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   244
  ~  date:        Mon Jan 01 00:00:11 2007 +0000
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   245
     summary:     Add beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   246
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   247
44855
1d2d353e5c4a tests: add coverage for repo.changelog.children() in the git extension
Augie Fackler <augie@google.com>
parents: 44854
diff changeset
   248
  $ hg log -r "children(3d9be8deba43)" -T"{node|short} {children}\n"
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   249
  5b2c80b027ce 3:980d4f79a9c6
44855
1d2d353e5c4a tests: add coverage for repo.changelog.children() in the git extension
Augie Fackler <augie@google.com>
parents: 44854
diff changeset
   250
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   251
hg annotate
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   252
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   253
  $ hg annotate alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   254
  0: alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   255
  2: a
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   256
  4: a
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   257
  $ hg annotate beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   258
  1: beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   259
  3: b
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   260
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   261
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   262
Files in subdirectories. TODO: case-folding support, make this `A`
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   263
instead of `a`.
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   264
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   265
  $ mkdir a
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   266
  $ echo "This is file mu." > a/mu
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   267
  $ hg ci -A -m 'Introduce file a/mu'
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   268
  adding a/mu
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   269
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   270
Both hg and git agree a/mu is part of the repo
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   271
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   272
  $ git ls-files
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   273
  a/mu
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   274
  alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   275
  beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   276
  $ hg files
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   277
  a/mu
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   278
  alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   279
  beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   280
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   281
hg and git status both clean
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   282
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   283
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   284
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   285
  nothing to commit, working tree clean
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   286
  $ hg status
44951
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44932
diff changeset
   287
  heads mismatch, rebuilding dagcache
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   288
44478
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   289
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   290
node|shortest works correctly
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   291
  $ hg log -T '{node}\n' | sort
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   292
  3d9be8deba43482be2c81a4cb4be1f10d85fa8bc
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   293
  5b2c80b027ce4250f88957326c199a2dc48dad60
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   294
  980d4f79a9c617d60d0fe1fb383753c4a61bea8e
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   295
  c1a41c49866ecc9c5411be932653e5b430961dd5
44478
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   296
  c5864c9d16fb3431fe2c175ff84dc6accdbb2c18
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   297
  cf6ddf5d9b8a120bf90020342bcf7a96d0167279
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   298
  $ hg log -r c1a41c49866ecc9c5411be932653e5b430961dd5 --template "{shortest(node,1)}\n"
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   299
  c1
44478
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   300
47045
846920d89476 git: fix partial node matching
Matt Harbison <matt_harbison@yahoo.com>
parents: 47044
diff changeset
   301
This covers gitlog._partialmatch()
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   302
  $ hg log -r c
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   303
  abort: ambiguous revision identifier: c
47045
846920d89476 git: fix partial node matching
Matt Harbison <matt_harbison@yahoo.com>
parents: 47044
diff changeset
   304
  [10]
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   305
  $ hg log -r c1
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   306
  changeset:   5:c1a41c49866e
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   307
  bookmark:    master
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   308
  tag:         tip
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   309
  user:        test <test@example.org>
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   310
  date:        Thu Jan 01 00:00:00 1970 +0000
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   311
  summary:     Introduce file a/mu
47045
846920d89476 git: fix partial node matching
Matt Harbison <matt_harbison@yahoo.com>
parents: 47044
diff changeset
   312
  
846920d89476 git: fix partial node matching
Matt Harbison <matt_harbison@yahoo.com>
parents: 47044
diff changeset
   313
  $ hg log -r dead
846920d89476 git: fix partial node matching
Matt Harbison <matt_harbison@yahoo.com>
parents: 47044
diff changeset
   314
  abort: unknown revision 'dead'
49903
d2e80d27c524 tests: aborting on unknown revision emits exit code 10 even with hgext/git
Anton Shestakov <av6@dwimlabs.net>
parents: 49386
diff changeset
   315
  [10]
47045
846920d89476 git: fix partial node matching
Matt Harbison <matt_harbison@yahoo.com>
parents: 47044
diff changeset
   316
44854
572f98a6f6af tests: add coverage for repo.changelog.findmissing() in test-git-interop.t
Augie Fackler <augie@google.com>
parents: 44493
diff changeset
   317
This coveres changelog.findmissing()
572f98a6f6af tests: add coverage for repo.changelog.findmissing() in test-git-interop.t
Augie Fackler <augie@google.com>
parents: 44493
diff changeset
   318
  $ hg merge --preview 3d9be8deba43
44932
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44855
diff changeset
   319
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44855
diff changeset
   320
This covers manifest.diff()
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44855
diff changeset
   321
  $ hg diff -c 3d9be8deba43
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44855
diff changeset
   322
  diff -r c5864c9d16fb -r 3d9be8deba43 beta
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44855
diff changeset
   323
  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44855
diff changeset
   324
  +++ b/beta	Mon Jan 01 00:00:11 2007 +0000
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44855
diff changeset
   325
  @@ -0,0 +1,1 @@
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44855
diff changeset
   326
  +beta
45423
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44951
diff changeset
   327
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44951
diff changeset
   328
45578
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   329
Interactive commit should work as expected
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   330
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   331
  $ echo bar >> alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   332
  $ echo bar >> beta
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   333
  $ hg commit -m "test interactive commit" -i --config ui.interactive=true --config ui.interface=text << EOF
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   334
  > y
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   335
  > y
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   336
  > n
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   337
  > EOF
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   338
  diff --git a/alpha b/alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   339
  1 hunks, 1 lines changed
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   340
  examine changes to 'alpha'?
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   341
  (enter ? for help) [Ynesfdaq?] y
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   342
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   343
  @@ -1,3 +1,4 @@
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   344
   alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   345
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   346
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   347
  +bar
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   348
  record change 1/2 to 'alpha'?
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   349
  (enter ? for help) [Ynesfdaq?] y
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   350
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   351
  diff --git a/beta b/beta
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   352
  1 hunks, 1 lines changed
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   353
  examine changes to 'beta'?
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   354
  (enter ? for help) [Ynesfdaq?] n
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   355
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   356
Status should be consistent for both systems
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   357
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   358
  $ hg status
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   359
  heads mismatch, rebuilding dagcache
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   360
  M beta
50725
7e5be4a7cda7 tests: use grep -E instead of obsolescent egrep
Mads Kiilerich <mads@kiilerich.com>
parents: 49904
diff changeset
   361
  $ git status | grep -E -v '^$|^  \(use '
45578
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   362
  On branch master
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   363
  Changes not staged for commit:
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   364
  	modified:   beta
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   365
  no changes added to commit (use "git add" and/or "git commit -a")
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   366
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   367
Contents of each commit should be the same
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   368
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   369
  $ hg ex -r .
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   370
  # HG changeset patch
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   371
  # User test <test@example.org>
45578
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   372
  # Date 0 0
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   373
  #      Thu Jan 01 00:00:00 1970 +0000
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   374
  # Node ID 6024eda7986da123aa6797dd4603bd399d49bf5c
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   375
  # Parent  c1a41c49866ecc9c5411be932653e5b430961dd5
45578
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   376
  test interactive commit
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   377
  
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   378
  diff -r c1a41c49866e -r 6024eda7986d alpha
45578
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   379
  --- a/alpha	Thu Jan 01 00:00:00 1970 +0000
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   380
  +++ b/alpha	Thu Jan 01 00:00:00 1970 +0000
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   381
  @@ -1,3 +1,4 @@
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   382
   alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   383
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   384
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   385
  +bar
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   386
  $ git show
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   387
  commit 6024eda7986da123aa6797dd4603bd399d49bf5c
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   388
  Author: test <test@example.org>
45578
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   389
  Date:   Thu Jan 1 00:00:00 1970 +0000
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   390
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   391
      test interactive commit
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   392
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   393
  diff --git a/alpha b/alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   394
  index d112a75..d2a2e9a 100644
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   395
  --- a/alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   396
  +++ b/alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   397
  @@ -1,3 +1,4 @@
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   398
   alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   399
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   400
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   401
  +bar
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   402
45423
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44951
diff changeset
   403
Deleting files should also work (this was issue6398)
45578
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   404
  $ hg revert -r . --all
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   405
  reverting beta
45423
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44951
diff changeset
   406
  $ hg rm beta
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44951
diff changeset
   407
  $ hg ci -m 'remove beta'
45578
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   408
47046
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
   409
This covers changelog.tiprev() (issue6510)
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
   410
  $ hg log -r '(.^^):'
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
   411
  heads mismatch, rebuilding dagcache
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   412
  changeset:   5:c1a41c49866e
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   413
  user:        test <test@example.org>
47046
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
   414
  date:        Thu Jan 01 00:00:00 1970 +0000
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
   415
  summary:     Introduce file a/mu
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
   416
  
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   417
  changeset:   6:6024eda7986d
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   418
  user:        test <test@example.org>
47046
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
   419
  date:        Thu Jan 01 00:00:00 1970 +0000
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
   420
  summary:     test interactive commit
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
   421
  
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   422
  changeset:   7:1a0fee76bfc4
47046
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
   423
  bookmark:    master
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
   424
  tag:         tip
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   425
  user:        test <test@example.org>
47046
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
   426
  date:        Thu Jan 01 00:00:00 1970 +0000
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
   427
  summary:     remove beta
497cedcb6504 git: make changelog.tiprev() return int instead of tuple (issue6510)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47045
diff changeset
   428
  
47047
8d733cbc2724 tests: add coverage for git.changelog.headrevs(...)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47046
diff changeset
   429
This covers changelog.headrevs() with a non-None arg
8d733cbc2724 tests: add coverage for git.changelog.headrevs(...)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47046
diff changeset
   430
  $ hg log -r 'heads(.)' -Tcompact
47053
4c7bc42a509e tests: synchronize the git and Mercurial username
Matt Harbison <matt_harbison@yahoo.com>
parents: 47052
diff changeset
   431
  7[tip][master]   1a0fee76bfc4   1970-01-01 00:00 +0000   test
47047
8d733cbc2724 tests: add coverage for git.changelog.headrevs(...)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47046
diff changeset
   432
    remove beta
8d733cbc2724 tests: add coverage for git.changelog.headrevs(...)
Matt Harbison <matt_harbison@yahoo.com>
parents: 47046
diff changeset
   433
  
49386
1e12ea7d8435 git: copy findmissingrevs() from revlog.py to gitlog.py (issue6472)
Anton Shestakov <av6@dwimlabs.net>
parents: 49384
diff changeset
   434
This covers revlog.findmissingrevs() (issue6472)
1e12ea7d8435 git: copy findmissingrevs() from revlog.py to gitlog.py (issue6472)
Anton Shestakov <av6@dwimlabs.net>
parents: 49384
diff changeset
   435
  $ hg log -r 'last(only(master))' -Tcompact
1e12ea7d8435 git: copy findmissingrevs() from revlog.py to gitlog.py (issue6472)
Anton Shestakov <av6@dwimlabs.net>
parents: 49384
diff changeset
   436
  7[tip][master]   1a0fee76bfc4   1970-01-01 00:00 +0000   test
1e12ea7d8435 git: copy findmissingrevs() from revlog.py to gitlog.py (issue6472)
Anton Shestakov <av6@dwimlabs.net>
parents: 49384
diff changeset
   437
    remove beta
1e12ea7d8435 git: copy findmissingrevs() from revlog.py to gitlog.py (issue6472)
Anton Shestakov <av6@dwimlabs.net>
parents: 49384
diff changeset
   438