tests/test-git-interop.t
author Joerg Sonnenberger <joerg@bec.de>
Fri, 30 Apr 2021 02:11:58 +0200
changeset 47043 12450fbea288
parent 46894 fe34c75f62ab
child 47044 96d295dd4968
permissions -rw-r--r--
manifests: push down expected node length into the parser This strictly enforces the node length in the manifest lines according to what the repository expects. One test case moves large hash testing into the non-treemanifest part as treemanifests don't provide an interface for overriding just the node length for now. Differential Revision: https://phab.mercurial-scm.org/D10533
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
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    10
  > count=10
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    11
  > gitcommit() {
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    12
  >    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
    13
  >    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
    14
  >    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
    15
  >    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
    16
  >  }
46840
6dea77e195d2 test: enforce master to be the default branch in test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46796
diff changeset
    17
  $ 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
    18
44493
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    19
45950
c7c1efdfd4de git: show the version of `pygit2` with verbose version output
Matt Harbison <matt_harbison@yahoo.com>
parents: 45926
diff changeset
    20
  $ 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
    21
  Enabled extensions:
c7c1efdfd4de git: show the version of `pygit2` with verbose version output
Matt Harbison <matt_harbison@yahoo.com>
parents: 45926
diff changeset
    22
    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
    23
44493
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    24
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
    25
  $ mkdir nogit
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    26
  $ cd nogit
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    27
  $ mkdir .hg
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    28
  $ 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
    29
  $ hg status
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    30
  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
    31
  [255]
46796
38f55ef058fb tests: resort to fix test with newer git versions
Joerg Sonnenberger <joerg@bec.de>
parents: 45992
diff changeset
    32
  $ 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
    33
  $ git init
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    34
  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
    35
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
    36
`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
    37
  $ hg status
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    38
  ? .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
    39
  ? .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
    40
  ? .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
    41
  ? .hg/requires
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    42
  $ cd ..
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    43
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44483
diff changeset
    44
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
    45
  $ 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
    46
  > [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
    47
  > 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
    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
  > 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
    50
  > EOF
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    51
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    52
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
    53
  $ mkdir foo
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    54
  $ cd foo
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    55
  $ git init
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    56
  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
    57
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
    58
  $ 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
    59
  $ echo alpha > alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    60
  $ git add alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    61
  $ 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
    62
  $ echo beta > beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    63
  $ git add beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    64
  $ 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
    65
  $ echo gamma > gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    66
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    67
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    68
  Untracked files:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    69
    (use "git add <file>..." to include in what will be committed)
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    70
  	gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    71
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    72
  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
    73
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    74
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
    75
  $ hg status
45926
a6f2821cdeab git: update test for hg and git output changes
Augie Fackler <raf@durin42.com>
parents: 45578
diff changeset
    76
  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
    77
  [10]
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    78
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
    79
  $ hg init --git
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    80
  $ 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
    81
  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
    82
  3d9be8deba43 tip master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    83
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    84
  ? gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    85
Log works too:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    86
  $ hg log
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    87
  changeset:   1:3d9be8deba43
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    88
  bookmark:    master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    89
  tag:         tip
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    90
  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
    91
  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
    92
  summary:     Add beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    93
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    94
  changeset:   0:c5864c9d16fb
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    95
  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
    96
  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
    97
  summary:     Add alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    98
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    99
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   100
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   101
and bookmarks:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   102
  $ hg bookmarks
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   103
   * master                    1:3d9be8deba43
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   104
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   105
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
   106
  $ echo blah >> alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   107
  $ git diff
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   108
  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
   109
  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
   110
  --- a/alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   111
  +++ b/alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   112
  @@ -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
   113
   alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   114
  +blah
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   115
  $ hg diff --git
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   116
  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
   117
  --- a/alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   118
  +++ b/alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   119
  @@ -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
   120
   alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   121
  +blah
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   122
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   123
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
   124
  $ rm alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   125
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   126
  ! alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   127
  ? gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   128
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   129
Revert works:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   130
  $ 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
   131
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   132
  ? gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   133
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   134
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   135
  Untracked files:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   136
    (use "git add <file>..." to include in what will be committed)
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   137
  	gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   138
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   139
  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
   140
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   141
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
   142
  $ hg add gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   143
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   144
  A gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   145
  $ hg files
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   146
  alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   147
  beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   148
  gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   149
  $ git ls-files
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   150
  alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   151
  beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   152
  gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   153
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   154
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   155
  Changes to be committed:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   156
    (use "git restore --staged <file>..." to unstage)
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   157
  	new file:   gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   158
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   159
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   160
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
   161
  $ hg forget gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   162
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   163
  ? gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   164
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   165
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   166
  Untracked files:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   167
    (use "git add <file>..." to include in what will be committed)
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   168
  	gamma
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
  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
   171
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   172
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
   173
  $ rm gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   174
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   175
hg log FILE
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   176
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   177
  $ echo a >> alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   178
  $ hg ci -m 'more alpha' --traceback --date '1583522787 18000'
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   179
  $ echo b >> beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   180
  $ 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
   181
  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
   182
  $ echo a >> alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   183
  $ 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
   184
  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
   185
  $ 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
   186
  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
   187
  @  changeset:   4:6626247b7dc8
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   188
  :  bookmark:    master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   189
  :  tag:         tip
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   190
  :  user:        test <test>
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   191
  :  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
   192
  :  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
   193
  :
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   194
  o  changeset:   2:a1983dd7fb19
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   195
  :  user:        test <test>
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   196
  :  date:        Fri Mar 06 14:26:27 2020 -0500
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   197
  :  summary:     more alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   198
  :
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   199
  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
   200
     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
   201
     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
   202
     summary:     Add alpha
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
  $ hg log -G beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   205
  o  changeset:   3:d8ee22687733
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   206
  :  user:        test <test>
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   207
  :  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
   208
  :  summary:     more beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   209
  :
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   210
  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
   211
  |  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
   212
  ~  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
   213
     summary:     Add beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   214
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   215
44855
1d2d353e5c4a tests: add coverage for repo.changelog.children() in the git extension
Augie Fackler <augie@google.com>
parents: 44854
diff changeset
   216
  $ hg log -r "children(3d9be8deba43)" -T"{node|short} {children}\n"
1d2d353e5c4a tests: add coverage for repo.changelog.children() in the git extension
Augie Fackler <augie@google.com>
parents: 44854
diff changeset
   217
  a1983dd7fb19 3:d8ee22687733
1d2d353e5c4a tests: add coverage for repo.changelog.children() in the git extension
Augie Fackler <augie@google.com>
parents: 44854
diff changeset
   218
44477
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   219
hg annotate
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   220
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   221
  $ hg annotate alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   222
  0: alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   223
  2: a
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   224
  4: a
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   225
  $ hg annotate beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   226
  1: beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   227
  3: b
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   228
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   229
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   230
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
   231
instead of `a`.
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   232
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   233
  $ mkdir a
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   234
  $ 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
   235
  $ 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
   236
  adding a/mu
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   237
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   238
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
   239
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   240
  $ git ls-files
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   241
  a/mu
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   242
  alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   243
  beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   244
  $ hg files
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   245
  a/mu
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   246
  alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   247
  beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   248
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   249
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
   250
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   251
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   252
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   253
  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
   254
  $ 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
   255
  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
   256
44478
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   257
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   258
node|shortest works correctly
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   259
  $ hg log -T '{node}\n' | sort
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   260
  3d9be8deba43482be2c81a4cb4be1f10d85fa8bc
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   261
  6626247b7dc8f231b183b8a4761c89139baca2ad
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   262
  a1983dd7fb19cbd83ad5a1c2fc8bf3d775dea12f
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   263
  ae1ab744f95bfd5b07cf573baef98a778058537b
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   264
  c5864c9d16fb3431fe2c175ff84dc6accdbb2c18
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   265
  d8ee22687733a1991813560b15128cd9734f4b48
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   266
  $ hg log -r ae1ab744f95bfd5b07cf573baef98a778058537b --template "{shortest(node,1)}\n"
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   267
  ae
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44477
diff changeset
   268
44854
572f98a6f6af tests: add coverage for repo.changelog.findmissing() in test-git-interop.t
Augie Fackler <augie@google.com>
parents: 44493
diff changeset
   269
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
   270
  $ 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
   271
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44855
diff changeset
   272
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
   273
  $ 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
   274
  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
   275
  --- /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
   276
  +++ 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
   277
  @@ -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
   278
  +beta
45423
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44951
diff changeset
   279
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44951
diff changeset
   280
45578
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   281
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
   282
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   283
  $ 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
   284
  $ 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
   285
  $ 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
   286
  > y
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   287
  > y
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   288
  > n
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   289
  > EOF
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   290
  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
   291
  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
   292
  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
   293
  (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
   294
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   295
  @@ -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
   296
   alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   297
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   298
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   299
  +bar
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   300
  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
   301
  (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
   302
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   303
  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
   304
  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
   305
  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
   306
  (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
   307
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   308
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
   309
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   310
  $ hg status
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   311
  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
   312
  M beta
45926
a6f2821cdeab git: update test for hg and git output changes
Augie Fackler <raf@durin42.com>
parents: 45578
diff changeset
   313
  $ git status | egrep -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
   314
  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
   315
  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
   316
  	modified:   beta
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   317
  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
   318
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   319
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
   320
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   321
  $ 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
   322
  # HG changeset patch
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   323
  # User test <test>
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   324
  # 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
   325
  #      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
   326
  # Node ID 80adc61cf57e99f6a412d83fee6239d1556cefcf
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   327
  # Parent  ae1ab744f95bfd5b07cf573baef98a778058537b
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   328
  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
   329
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   330
  diff -r ae1ab744f95b -r 80adc61cf57e alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   331
  --- 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
   332
  +++ 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
   333
  @@ -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
   334
   alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   335
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   336
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   337
  +bar
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   338
  $ git show
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   339
  commit 80adc61cf57e99f6a412d83fee6239d1556cefcf
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   340
  Author: test <test>
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   341
  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
   342
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   343
      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
   344
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   345
  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
   346
  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
   347
  --- a/alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   348
  +++ b/alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   349
  @@ -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
   350
   alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   351
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   352
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   353
  +bar
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45423
diff changeset
   354
45423
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44951
diff changeset
   355
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
   356
  $ 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
   357
  reverting beta
45423
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44951
diff changeset
   358
  $ hg rm beta
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44951
diff changeset
   359
  $ 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
   360