tests/test-git-interop.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Mon, 14 Dec 2020 11:32:24 +0100
changeset 46149 294d5aca4ff5
parent 46007 9dd5b129ff28
child 46798 38f55ef058fb
permissions -rw-r--r--
copies: iterate over children directly (instead of parents) Before this change we would gather all parent → child edges and iterate on all parent, gathering copy information for children and aggregating them from there. They are not strict requirement for edges to be processed in that specific order. We could also simply iterate over all "children" revision and aggregate data from both parents at the same time. This patch does that. It make various things simpler: * since both parents are processed at the same time, we no longer need to cache data for merge (see next changeset for details), * we no longer need nested loop to process data, * we no longer need to store partial merge data for a rev from distinct loop interaction to another when processing merges, * we no longer need to build a full parent -> children mapping (we only rely on a simpler "parent -> number of children" map (for memory efficiency), * the data access pattern is now simpler (from lower revisions to higher revisions) and entirely predicable. That predictability open the way to prefetching and parallel processing. So that new iterations order requires simpler code and open the way to interesting optimisation. The effect on performance is quite good. In the worse case, we don't see any significant negative impact. And in the best case, the reduction of roundtrip to Python provide us with a significant speed. Some example below: Repo Case Source-Rev Dest-Rev # of revisions old time new time Difference Factor time per rev --------------------------------------------------------------------------------------------------------------------------------------------------------------- mozilla-try x00000_revs_x00000_added_0_copies dc8a3ca7010e d16fde900c9c : 34414 revs, 0.962867 s, 0.502584 s, -0.460283 s, × 0.5220, 14 µs/rev mozilla-try x0000_revs_xx000_added_x_copies 156f6e2674f2 4d0f2c178e66 : 8598 revs, 0.110717 s, 0.076323 s, -0.034394 s, × 0.6894, 8 µs/rev # full comparison between the previous changeset and this one Repo Case Source-Rev Dest-Rev # of revisions old time new time Difference Factor time per rev --------------------------------------------------------------------------------------------------------------------------------------------------------------- mercurial x_revs_x_added_0_copies ad6b123de1c7 39cfcef4f463 : 1 revs, 0.000048 s, 0.000041 s, -0.000007 s, × 0.8542, 41 µs/rev mercurial x_revs_x_added_x_copies 2b1c78674230 0c1d10351869 : 6 revs, 0.000153 s, 0.000102 s, -0.000051 s, × 0.6667, 17 µs/rev mercurial x000_revs_x000_added_x_copies 81f8ff2a9bf2 dd3267698d84 : 1032 revs, 0.004209 s, 0.004254 s, +0.000045 s, × 1.0107, 4 µs/rev pypy x_revs_x_added_0_copies aed021ee8ae8 099ed31b181b : 9 revs, 0.000203 s, 0.000282 s, +0.000079 s, × 1.3892, 31 µs/rev pypy x_revs_x000_added_0_copies 4aa4e1f8e19a 359343b9ac0e : 1 revs, 0.000059 s, 0.000048 s, -0.000011 s, × 0.8136, 48 µs/rev pypy x_revs_x_added_x_copies ac52eb7bbbb0 72e022663155 : 7 revs, 0.000194 s, 0.000211 s, +0.000017 s, × 1.0876, 30 µs/rev pypy x_revs_x00_added_x_copies c3b14617fbd7 ace7255d9a26 : 1 revs, 0.000380 s, 0.000375 s, -0.000005 s, × 0.9868, 375 µs/rev pypy x_revs_x000_added_x000_copies df6f7a526b60 a83dc6a2d56f : 6 revs, 0.010588 s, 0.010574 s, -0.000014 s, × 0.9987, 1762 µs/rev pypy x000_revs_xx00_added_0_copies 89a76aede314 2f22446ff07e : 4785 revs, 0.048961 s, 0.049974 s, +0.001013 s, × 1.0207, 10 µs/rev pypy x000_revs_x000_added_x_copies 8a3b5bfd266e 2c68e87c3efe : 6780 revs, 0.083612 s, 0.084300 s, +0.000688 s, × 1.0082, 12 µs/rev pypy x000_revs_x000_added_x000_copies 89a76aede314 7b3dda341c84 : 5441 revs, 0.058579 s, 0.060128 s, +0.001549 s, × 1.0264, 11 µs/rev pypy x0000_revs_x_added_0_copies d1defd0dc478 c9cb1334cc78 : 43645 revs, 0.736783 s, 0.686542 s, -0.050241 s, × 0.9318, 15 µs/rev pypy x0000_revs_xx000_added_0_copies bf2c629d0071 4ffed77c095c : 2 revs, 0.022050 s, 0.009277 s, -0.012773 s, × 0.4207, 4638 µs/rev pypy x0000_revs_xx000_added_x000_copies 08ea3258278e d9fa043f30c0 : 11316 revs, 0.120800 s, 0.114733 s, -0.006067 s, × 0.9498, 10 µs/rev netbeans x_revs_x_added_0_copies fb0955ffcbcd a01e9239f9e7 : 2 revs, 0.000140 s, 0.000081 s, -0.000059 s, × 0.5786, 40 µs/rev netbeans x_revs_x000_added_0_copies 6f360122949f 20eb231cc7d0 : 2 revs, 0.000114 s, 0.000107 s, -0.000007 s, × 0.9386, 53 µs/rev netbeans x_revs_x_added_x_copies 1ada3faf6fb6 5a39d12eecf4 : 3 revs, 0.000224 s, 0.000173 s, -0.000051 s, × 0.7723, 57 µs/rev netbeans x_revs_x00_added_x_copies 35be93ba1e2c 9eec5e90c05f : 9 revs, 0.000723 s, 0.000698 s, -0.000025 s, × 0.9654, 77 µs/rev netbeans x000_revs_xx00_added_0_copies eac3045b4fdd 51d4ae7f1290 : 1421 revs, 0.009665 s, 0.009248 s, -0.000417 s, × 0.9569, 6 µs/rev netbeans x000_revs_x000_added_x_copies e2063d266acd 6081d72689dc : 1533 revs, 0.014820 s, 0.015446 s, +0.000626 s, × 1.0422, 10 µs/rev netbeans x000_revs_x000_added_x000_copies ff453e9fee32 411350406ec2 : 5750 revs, 0.076049 s, 0.074373 s, -0.001676 s, × 0.9780, 12 µs/rev netbeans x0000_revs_xx000_added_x000_copies 588c2d1ced70 1aad62e59ddd : 66949 revs, 0.683603 s, 0.639870 s, -0.043733 s, × 0.9360, 9 µs/rev mozilla-central x_revs_x_added_0_copies 3697f962bb7b 7015fcdd43a2 : 2 revs, 0.000161 s, 0.000088 s, -0.000073 s, × 0.5466, 44 µs/rev mozilla-central x_revs_x000_added_0_copies dd390860c6c9 40d0c5bed75d : 8 revs, 0.000234 s, 0.000199 s, -0.000035 s, × 0.8504, 24 µs/rev mozilla-central x_revs_x_added_x_copies 8d198483ae3b 14207ffc2b2f : 9 revs, 0.000247 s, 0.000171 s, -0.000076 s, × 0.6923, 19 µs/rev mozilla-central x_revs_x00_added_x_copies 98cbc58cc6bc 446a150332c3 : 7 revs, 0.000630 s, 0.000592 s, -0.000038 s, × 0.9397, 84 µs/rev mozilla-central x_revs_x000_added_x000_copies 3c684b4b8f68 0a5e72d1b479 : 3 revs, 0.003286 s, 0.003151 s, -0.000135 s, × 0.9589, 1050 µs/rev mozilla-central x_revs_x0000_added_x0000_copies effb563bb7e5 c07a39dc4e80 : 6 revs, 0.062441 s, 0.061612 s, -0.000829 s, × 0.9867, 10268 µs/rev mozilla-central x000_revs_xx00_added_0_copies 6100d773079a 04a55431795e : 1593 revs, 0.005423 s, 0.005381 s, -0.000042 s, × 0.9923, 3 µs/rev mozilla-central x000_revs_x000_added_x_copies 9f17a6fc04f9 2d37b966abed : 41 revs, 0.005919 s, 0.003742 s, -0.002177 s, × 0.6322, 91 µs/rev mozilla-central x000_revs_x000_added_x000_copies 7c97034feb78 4407bd0c6330 : 7839 revs, 0.062597 s, 0.061983 s, -0.000614 s, × 0.9902, 7 µs/rev mozilla-central x0000_revs_xx000_added_0_copies 9eec5917337d 67118cc6dcad : 615 revs, 0.043551 s, 0.019861 s, -0.023690 s, × 0.4560, 32 µs/rev mozilla-central x0000_revs_xx000_added_x000_copies f78c615a656c 96a38b690156 : 30263 revs, 0.192475 s, 0.188101 s, -0.004374 s, × 0.9773, 6 µs/rev mozilla-central x00000_revs_x0000_added_x0000_copies 6832ae71433c 4c222a1d9a00 : 153721 revs, 1.955575 s, 1.806696 s, -0.148879 s, × 0.9239, 11 µs/rev mozilla-central x00000_revs_x00000_added_x000_copies 76caed42cf7c 1daa622bbe42 : 204976 revs, 2.886501 s, 2.682987 s, -0.203514 s, × 0.9295, 13 µs/rev mozilla-try x_revs_x_added_0_copies aaf6dde0deb8 9790f499805a : 2 revs, 0.001181 s, 0.000852 s, -0.000329 s, × 0.7214, 426 µs/rev mozilla-try x_revs_x000_added_0_copies d8d0222927b4 5bb8ce8c7450 : 2 revs, 0.001189 s, 0.000859 s, -0.000330 s, × 0.7225, 429 µs/rev mozilla-try x_revs_x_added_x_copies 092fcca11bdb 936255a0384a : 4 revs, 0.000563 s, 0.000150 s, -0.000413 s, × 0.2664, 37 µs/rev mozilla-try x_revs_x00_added_x_copies b53d2fadbdb5 017afae788ec : 2 revs, 0.001548 s, 0.001158 s, -0.000390 s, × 0.7481, 579 µs/rev mozilla-try x_revs_x000_added_x000_copies 20408ad61ce5 6f0ee96e21ad : 1 revs, 0.027782 s, 0.027240 s, -0.000542 s, × 0.9805, 27240 µs/rev mozilla-try x_revs_x0000_added_x0000_copies effb563bb7e5 c07a39dc4e80 : 6 revs, 0.062781 s, 0.062824 s, +0.000043 s, × 1.0007, 10470 µs/rev mozilla-try x000_revs_xx00_added_0_copies 6100d773079a 04a55431795e : 1593 revs, 0.005778 s, 0.005463 s, -0.000315 s, × 0.9455, 3 µs/rev mozilla-try x000_revs_x000_added_x_copies 9f17a6fc04f9 2d37b966abed : 41 revs, 0.006192 s, 0.004238 s, -0.001954 s, × 0.6844, 103 µs/rev mozilla-try x000_revs_x000_added_x000_copies 1346fd0130e4 4c65cbdabc1f : 6657 revs, 0.065391 s, 0.064113 s, -0.001278 s, × 0.9805, 9 µs/rev mozilla-try x0000_revs_x_added_0_copies 63519bfd42ee a36a2a865d92 : 40314 revs, 0.317216 s, 0.294063 s, -0.023153 s, × 0.9270, 7 µs/rev mozilla-try x0000_revs_x_added_x_copies 9fe69ff0762d bcabf2a78927 : 38690 revs, 0.303119 s, 0.281493 s, -0.021626 s, × 0.9287, 7 µs/rev mozilla-try x0000_revs_xx000_added_x_copies 156f6e2674f2 4d0f2c178e66 : 8598 revs, 0.110717 s, 0.076323 s, -0.034394 s, × 0.6894, 8 µs/rev mozilla-try x0000_revs_xx000_added_0_copies 9eec5917337d 67118cc6dcad : 615 revs, 0.045739 s, 0.020390 s, -0.025349 s, × 0.4458, 33 µs/rev mozilla-try x0000_revs_xx000_added_x000_copies 89294cd501d9 7ccb2fc7ccb5 : 97052 revs, 3.098021 s, 3.023879 s, -0.074142 s, × 0.9761, 31 µs/rev mozilla-try x0000_revs_x0000_added_x0000_copies e928c65095ed e951f4ad123a : 52031 revs, 0.771480 s, 0.735549 s, -0.035931 s, × 0.9534, 14 µs/rev mozilla-try x00000_revs_x_added_0_copies 6a320851d377 1ebb79acd503 : 363753 revs, 18.813422 s, 18.568900 s, -0.244522 s, × 0.9870, 51 µs/rev mozilla-try x00000_revs_x00000_added_0_copies dc8a3ca7010e d16fde900c9c : 34414 revs, 0.962867 s, 0.502584 s, -0.460283 s, × 0.5220, 14 µs/rev mozilla-try x00000_revs_x_added_x_copies 5173c4b6f97c 95d83ee7242d : 362229 revs, 18.684923 s, 18.356645 s, -0.328278 s, × 0.9824, 50 µs/rev mozilla-try x00000_revs_x000_added_x_copies 9126823d0e9c ca82787bb23c : 359344 revs, 18.296305 s, 18.250393 s, -0.045912 s, × 0.9975, 50 µs/rev mozilla-try x00000_revs_x0000_added_x0000_copies 8d3fafa80d4b eb884023b810 : 192665 revs, 3.061887 s, 2.792459 s, -0.269428 s, × 0.9120, 14 µs/rev mozilla-try x00000_revs_x00000_added_x0000_copies 1b661134e2ca 1ae03d022d6d : 228985 revs, 103.869641 s, 107.697264 s, +3.827623 s, × 1.0369, 470 µs/rev mozilla-try x00000_revs_x00000_added_x000_copies 9b2a99adc05e 8e29777b48e6 : 382065 revs, 64.262957 s, 63.961040 s, -0.301917 s, × 0.9953, 167 µs/rev Differential Revision: https://phab.mercurial-scm.org/D9422
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44495
2e464925f662 hghave: add a check for pygit2
Martin von Zweigbergk <martinvonz@google.com>
parents: 44490
diff changeset
     1
#require pygit2
44489
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:
44505
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
     4
  $ GIT_AUTHOR_NAME='test'; export GIT_AUTHOR_NAME
44489
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
  >  }
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    17
44505
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    18
45965
c7c1efdfd4de git: show the version of `pygit2` with verbose version output
Matt Harbison <matt_harbison@yahoo.com>
parents: 45941
diff changeset
    19
  $ 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: 45941
diff changeset
    20
  Enabled extensions:
c7c1efdfd4de git: show the version of `pygit2` with verbose version output
Matt Harbison <matt_harbison@yahoo.com>
parents: 45941
diff changeset
    21
    git  internal  (pygit2 *) (glob)
c7c1efdfd4de git: show the version of `pygit2` with verbose version output
Matt Harbison <matt_harbison@yahoo.com>
parents: 45941
diff changeset
    22
44505
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    23
Test auto-loading extension works:
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    24
  $ mkdir nogit
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    25
  $ cd nogit
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    26
  $ mkdir .hg
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    27
  $ echo git >> .hg/requires
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    28
  $ hg status
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    29
  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: 44495
diff changeset
    30
  [255]
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    31
  $ git init
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    32
  Initialized empty Git repository in $TESTTMP/nogit/.git/
46007
9dd5b129ff28 tests: set old git default branch name for compatibility
Martin von Zweigbergk <martinvonz@google.com>
parents: 45965
diff changeset
    33
  $ git config --global init.defaultBranch master
44505
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    34
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: 44495
diff changeset
    35
`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: 44495
diff changeset
    36
  $ hg status
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    37
  ? .hg/cache/git-commits.sqlite
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    38
  ? .hg/cache/git-commits.sqlite-shm
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    39
  ? .hg/cache/git-commits.sqlite-wal
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    40
  ? .hg/requires
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    41
  $ cd ..
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    42
02c47b74366c git: key off `git` in .hg/requires rather than separate file
Augie Fackler <raf@durin42.com>
parents: 44495
diff changeset
    43
Now globally enable extension for the rest of the test:
44992
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44973
diff changeset
    44
  $ cat <<EOF >> $HGRCPATH
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44973
diff changeset
    45
  > [extensions]
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44973
diff changeset
    46
  > git=
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44973
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: 44973
diff changeset
    48
  > 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: 44973
diff changeset
    49
  > EOF
44489
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    50
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    51
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
    52
  $ mkdir foo
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    53
  $ cd foo
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    54
  $ git init
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    55
  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
    56
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
    57
  $ 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
    58
  $ echo alpha > alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    59
  $ git add alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    60
  $ 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
    61
  $ echo beta > beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    62
  $ git add beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    63
  $ 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
    64
  $ echo gamma > gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    65
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    66
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    67
  Untracked files:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    68
    (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
    69
  	gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    70
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    71
  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
    72
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    73
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
    74
  $ hg status
45941
a6f2821cdeab git: update test for hg and git output changes
Augie Fackler <raf@durin42.com>
parents: 45581
diff changeset
    75
  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: 45581
diff changeset
    76
  [10]
44489
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    77
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
    78
  $ hg init --git
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    79
  $ hg id --traceback
44992
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44973
diff changeset
    80
  heads mismatch, rebuilding dagcache
44489
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    81
  3d9be8deba43 tip master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    82
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    83
  ? gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    84
Log works too:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    85
  $ hg log
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    86
  changeset:   1:3d9be8deba43
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    87
  bookmark:    master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    88
  tag:         tip
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    89
  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
    90
  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
    91
  summary:     Add beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    92
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    93
  changeset:   0:c5864c9d16fb
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    94
  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
    95
  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
    96
  summary:     Add alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
    97
  
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
and bookmarks:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   101
  $ hg bookmarks
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   102
   * master                    1:3d9be8deba43
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   103
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   104
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
   105
  $ echo blah >> alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   106
  $ git diff
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   107
  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
   108
  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
   109
  --- a/alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   110
  +++ b/alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   111
  @@ -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
   112
   alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   113
  +blah
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   114
  $ hg diff --git
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   115
  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
   116
  --- a/alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   117
  +++ b/alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   118
  @@ -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
   119
   alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   120
  +blah
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   121
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   122
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
   123
  $ rm alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   124
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   125
  ! alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   126
  ? gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   127
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   128
Revert works:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   129
  $ 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
   130
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   131
  ? gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   132
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   133
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   134
  Untracked files:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   135
    (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
   136
  	gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   137
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   138
  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
   139
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   140
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
   141
  $ hg add gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   142
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   143
  A gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   144
  $ hg files
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   145
  alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   146
  beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   147
  gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   148
  $ git ls-files
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   149
  alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   150
  beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   151
  gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   152
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   153
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   154
  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
   155
    (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
   156
  	new file:   gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   157
  
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
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
   160
  $ hg forget gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   161
  $ hg status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   162
  ? gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   163
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   164
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   165
  Untracked files:
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   166
    (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
   167
  	gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   168
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   169
  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
   170
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   171
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
   172
  $ rm gamma
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   173
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   174
hg log FILE
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   175
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   176
  $ echo a >> alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   177
  $ 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
   178
  $ echo b >> beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   179
  $ hg ci -m 'more beta'
44992
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44973
diff changeset
   180
  heads mismatch, rebuilding dagcache
44489
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   181
  $ echo a >> alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   182
  $ hg ci -m 'even more alpha'
44992
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44973
diff changeset
   183
  heads mismatch, rebuilding dagcache
44489
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   184
  $ hg log -G alpha
44992
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44973
diff changeset
   185
  heads mismatch, rebuilding dagcache
44489
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   186
  @  changeset:   4:6626247b7dc8
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   187
  :  bookmark:    master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   188
  :  tag:         tip
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   189
  :  user:        test <test>
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   190
  :  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
   191
  :  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
   192
  :
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   193
  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
   194
  :  user:        test <test>
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   195
  :  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
   196
  :  summary:     more alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   197
  :
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   198
  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
   199
     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
   200
     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
   201
     summary:     Add alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   202
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   203
  $ 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
   204
  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
   205
  :  user:        test <test>
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   206
  :  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
   207
  :  summary:     more beta
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
  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
   210
  |  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
   211
  ~  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
   212
     summary:     Add beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   213
  
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   214
44914
1d2d353e5c4a tests: add coverage for repo.changelog.children() in the git extension
Augie Fackler <augie@google.com>
parents: 44913
diff changeset
   215
  $ 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: 44913
diff changeset
   216
  a1983dd7fb19 3:d8ee22687733
1d2d353e5c4a tests: add coverage for repo.changelog.children() in the git extension
Augie Fackler <augie@google.com>
parents: 44913
diff changeset
   217
44489
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   218
hg annotate
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   219
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   220
  $ hg annotate alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   221
  0: alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   222
  2: a
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   223
  4: a
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   224
  $ hg annotate beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   225
  1: beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   226
  3: b
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   227
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
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
   230
instead of `a`.
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   231
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   232
  $ mkdir a
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   233
  $ 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
   234
  $ 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
   235
  adding a/mu
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   236
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   237
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
   238
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   239
  $ git ls-files
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   240
  a/mu
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   241
  alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   242
  beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   243
  $ hg files
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   244
  a/mu
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   245
  alpha
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   246
  beta
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   247
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   248
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
   249
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   250
  $ git status
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   251
  On branch master
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   252
  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
   253
  $ hg status
44992
83e41b73d115 git: add debug logging when there's a mismatch in the cached heads list
Augie Fackler <augie@google.com>
parents: 44973
diff changeset
   254
  heads mismatch, rebuilding dagcache
44489
ad718271a9eb git: skeleton of a new extension to _directly_ operate on git repos
Augie Fackler <augie@google.com>
parents:
diff changeset
   255
44490
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44489
diff changeset
   256
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44489
diff changeset
   257
node|shortest works correctly
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44489
diff changeset
   258
  $ hg log -T '{node}\n' | sort
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44489
diff changeset
   259
  3d9be8deba43482be2c81a4cb4be1f10d85fa8bc
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44489
diff changeset
   260
  6626247b7dc8f231b183b8a4761c89139baca2ad
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44489
diff changeset
   261
  a1983dd7fb19cbd83ad5a1c2fc8bf3d775dea12f
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44489
diff changeset
   262
  ae1ab744f95bfd5b07cf573baef98a778058537b
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44489
diff changeset
   263
  c5864c9d16fb3431fe2c175ff84dc6accdbb2c18
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44489
diff changeset
   264
  d8ee22687733a1991813560b15128cd9734f4b48
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44489
diff changeset
   265
  $ hg log -r ae1ab744f95bfd5b07cf573baef98a778058537b --template "{shortest(node,1)}\n"
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44489
diff changeset
   266
  ae
6d953b3fc2bd git: make {shortest()} return shortest *unique* prefix
Martin von Zweigbergk <martinvonz@google.com>
parents: 44489
diff changeset
   267
44913
572f98a6f6af tests: add coverage for repo.changelog.findmissing() in test-git-interop.t
Augie Fackler <augie@google.com>
parents: 44505
diff changeset
   268
This coveres changelog.findmissing()
572f98a6f6af tests: add coverage for repo.changelog.findmissing() in test-git-interop.t
Augie Fackler <augie@google.com>
parents: 44505
diff changeset
   269
  $ hg merge --preview 3d9be8deba43
44973
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44914
diff changeset
   270
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44914
diff changeset
   271
This covers manifest.diff()
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44914
diff changeset
   272
  $ hg diff -c 3d9be8deba43
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44914
diff changeset
   273
  diff -r c5864c9d16fb -r 3d9be8deba43 beta
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44914
diff changeset
   274
  --- /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: 44914
diff changeset
   275
  +++ 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: 44914
diff changeset
   276
  @@ -0,0 +1,1 @@
03ba7de6a8b9 git: add coverage for manifest.diff() so we don't regress
Augie Fackler <augie@google.com>
parents: 44914
diff changeset
   277
  +beta
45434
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44992
diff changeset
   278
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44992
diff changeset
   279
45581
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   280
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: 45434
diff changeset
   281
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   282
  $ echo bar >> alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   283
  $ echo bar >> beta
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   284
  $ 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: 45434
diff changeset
   285
  > y
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   286
  > y
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   287
  > n
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   288
  > EOF
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   289
  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: 45434
diff changeset
   290
  1 hunks, 1 lines changed
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   291
  examine changes to 'alpha'?
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   292
  (enter ? for help) [Ynesfdaq?] y
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   293
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   294
  @@ -1,3 +1,4 @@
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   295
   alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   296
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   297
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   298
  +bar
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   299
  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: 45434
diff changeset
   300
  (enter ? for help) [Ynesfdaq?] y
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   301
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   302
  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: 45434
diff changeset
   303
  1 hunks, 1 lines changed
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   304
  examine changes to 'beta'?
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   305
  (enter ? for help) [Ynesfdaq?] n
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   306
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   307
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: 45434
diff changeset
   308
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   309
  $ hg status
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   310
  heads mismatch, rebuilding dagcache
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   311
  M beta
45941
a6f2821cdeab git: update test for hg and git output changes
Augie Fackler <raf@durin42.com>
parents: 45581
diff changeset
   312
  $ git status | egrep -v '^$|^  \(use '
45581
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   313
  On branch master
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   314
  Changes not staged for commit:
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   315
  	modified:   beta
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   316
  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: 45434
diff changeset
   317
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   318
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: 45434
diff changeset
   319
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   320
  $ hg ex -r .
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   321
  # HG changeset patch
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   322
  # User test <test>
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   323
  # Date 0 0
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   324
  #      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: 45434
diff changeset
   325
  # Node ID 80adc61cf57e99f6a412d83fee6239d1556cefcf
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   326
  # Parent  ae1ab744f95bfd5b07cf573baef98a778058537b
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   327
  test interactive commit
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   328
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   329
  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: 45434
diff changeset
   330
  --- 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: 45434
diff changeset
   331
  +++ 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: 45434
diff changeset
   332
  @@ -1,3 +1,4 @@
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   333
   alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   334
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   335
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   336
  +bar
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   337
  $ git show
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   338
  commit 80adc61cf57e99f6a412d83fee6239d1556cefcf
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   339
  Author: test <test>
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   340
  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: 45434
diff changeset
   341
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   342
      test interactive commit
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   343
  
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   344
  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: 45434
diff changeset
   345
  index d112a75..d2a2e9a 100644
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   346
  --- a/alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   347
  +++ b/alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   348
  @@ -1,3 +1,4 @@
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   349
   alpha
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   350
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   351
   a
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   352
  +bar
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   353
45434
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44992
diff changeset
   354
Deleting files should also work (this was issue6398)
45581
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   355
  $ hg revert -r . --all
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   356
  reverting beta
45434
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44992
diff changeset
   357
  $ hg rm beta
d4cf80341589 git: fix index handling of removed files during commit (issue6398)
Augie Fackler <raf@durin42.com>
parents: 44992
diff changeset
   358
  $ hg ci -m 'remove beta'
45581
f9a3edf2dee4 git: add test showing `hg commit -i` working on a git repo
Connor Sheehan <sheehan@mozilla.com>
parents: 45434
diff changeset
   359