Show More
@@ -3095,7 +3095,15 b' def commitstatus(repo, node, branch, bhe' | |||
|
3095 | 3095 | ctx = repo[node] |
|
3096 | 3096 | parents = ctx.parents() |
|
3097 | 3097 | |
|
3098 | if ( | |
|
3098 | if repo.changelog.tip() != node: | |
|
3099 | # this check is two-fold: 1. avoid reporting something like | |
|
3100 | # "committed new head" when recommitting old changesets, and | |
|
3101 | # 2., issue a helpful warning for most instances -- excepting | |
|
3102 | # when recommitting tip | |
|
3103 | repo.ui.warn( | |
|
3104 | _("warning: commit didn't add anything to the repository!\n"), | |
|
3105 | ) | |
|
3106 | elif ( | |
|
3099 | 3107 | not opts.get(b'amend') |
|
3100 | 3108 | and bheads |
|
3101 | 3109 | and node not in bheads |
@@ -79,6 +79,9 b' def commitctx(repo, ctx, error=False, or' | |||
|
79 | 79 | if repo.changelog._copiesstorage == b'extra': |
|
80 | 80 | extra = _extra_with_copies(repo, extra, files) |
|
81 | 81 | |
|
82 | # save the tip to check whether we actually committed anything | |
|
83 | tip = repo.changelog.tip() | |
|
84 | ||
|
82 | 85 | # update changelog |
|
83 | 86 | repo.ui.note(_(b"committing changelog\n")) |
|
84 | 87 | repo.changelog.delayupdate(tr) |
@@ -99,7 +102,7 b' def commitctx(repo, ctx, error=False, or' | |||
|
99 | 102 | ) |
|
100 | 103 | # set the new commit is proper phase |
|
101 | 104 | targetphase = subrepoutil.newcommitphase(repo.ui, ctx) |
|
102 | if targetphase: | |
|
105 | if targetphase and (tip != repo.changelog.tip() or repo[n].hidden()): | |
|
103 | 106 | # retract boundary do not alter parent changeset. |
|
104 | 107 | # if a parent have higher the resulting phase will |
|
105 | 108 | # be compliant anyway |
@@ -999,3 +999,52 b' Commit is hidden as expected' | |||
|
999 | 999 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
1000 | 1000 | summary: A |
|
1001 | 1001 | |
|
1002 | ||
|
1003 | $ cd .. | |
|
1004 | ||
|
1005 | Recommitting an exact match of a public commit shouldn't change it to | |
|
1006 | draft: | |
|
1007 | ||
|
1008 | $ cd initialrepo | |
|
1009 | $ hg phase -r 2 | |
|
1010 | 2: public | |
|
1011 | $ hg up -C 1 | |
|
1012 | 0 files updated, 0 files merged, 4 files removed, 0 files unresolved | |
|
1013 | $ mkcommit C | |
|
1014 | warning: commit didn't add anything to the repository! | |
|
1015 | $ hg phase -r 2 | |
|
1016 | 2: public | |
|
1017 | ||
|
1018 | Same, but for secret: | |
|
1019 | ||
|
1020 | $ hg up 7 | |
|
1021 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
1022 | $ mkcommit F -s | |
|
1023 | test-debug-phase: new rev 8: x -> 2 | |
|
1024 | test-hook-close-phase: de414268ec5ce2330c590b942fbb5ff0b0ca1a0a: -> secret | |
|
1025 | $ hg up 7 | |
|
1026 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
|
1027 | $ mkcommit F | |
|
1028 | $ hg phase -r tip | |
|
1029 | 8: secret | |
|
1030 | ||
|
1031 | But what about obsoleted changesets? | |
|
1032 | ||
|
1033 | $ hg up 4 | |
|
1034 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
|
1035 | $ mkcommit H | |
|
1036 | test-debug-phase: new rev 5: x -> 2 | |
|
1037 | warning: commit didn't add anything to the repository! | |
|
1038 | test-hook-close-phase: a030c6be5127abc010fcbff1851536552e6951a8: -> secret | |
|
1039 | $ hg phase -r 5 | |
|
1040 | 5: secret | |
|
1041 | $ hg par | |
|
1042 | changeset: 5:a030c6be5127 | |
|
1043 | user: test | |
|
1044 | date: Thu Jan 01 00:00:00 1970 +0000 | |
|
1045 | obsolete: pruned | |
|
1046 | summary: H | |
|
1047 | ||
|
1048 | $ hg up tip | |
|
1049 | 2 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
|
1050 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now