Show More
@@ -195,3 +195,4 7f5410dfc8a64bb587d19637deb95d378fd1eb5c | |||
|
195 | 195 | 6d121acbb82e65fe4dd3c2318a1b61981b958492 0 iQJEBAABCAAuFiEEK8zhT1xnJaouqK63ucncgkqlvdUFAl5f3IEQHHJhZkBkdXJpbjQyLmNvbQAKCRC5ydyCSqW91WoeD/9qhywGg/TI/FJEeJN5bJjcpB/YQeYDWCHh69yUmMPenf+6CaV/3QPc3R8JyQSKWwGUwc0IgZiJBb/HoUvBzpQyTvmGqddWsIGBpdGAkbLmRrE5BakR7Shs987a3Oq4hB03DJD4sQ1VitWg2OvGNd8rl1kSIF8aIErVI6ZiSw5eYemc/1VyBJXHWSFmcfnQqdsyPppH9e9/TAhio+YP4EmLmoxUcyRSb3UbtO2NT9+DEADaex+H2l9evg7AkTieVd6N163uqsLJIxSfCh5ZVmzaGW6uEoyC4U+9bkAyVE3Cy5z2giYblBzUkO9xqEZoA4tOM+b+gHokY8Sq3iGVw046CIW5+FjU9B5+7hCqWThYjnpnt+RomtHxrkqQ9SSHYnEWb4YTHqs+J7lWbm3ErjF08hYOyMA9/VT47UAKw4XL4Ss/1Pr7YezdmwB4jn7dqvslNvTqRAUOzB/15YeCfbd23SL4YzGaKBs9ajkxFFeCNNpLQ8CRm3a7/K6qkYyfSUpgUX7xBmRQTvUgr3nVk1epH/kOKwryy94Z+nlHF0qEMEq+1QOa5yvt3Kkr4H03pOFbLhdpjID5IYP4rRQTKB9yOS3XWBCE63AQVc7uuaBGPMCSLaKRAFDUXWY7GzCqda88WeN5BFC5iHrQTYE1IQ5YaWu38QMsJt2HHVc27+BuLA== |
|
196 | 196 | 8fca7e8449a847e3cf1054f2c07b51237699fad3 0 iQJEBAABCAAuFiEEK8zhT1xnJaouqK63ucncgkqlvdUFAl6GDVQQHHJhZkBkdXJpbjQyLmNvbQAKCRC5ydyCSqW91egzEACNEyQwLWCQEeNyxXKuTsnXhYU/au7nSGOti/9+zg/22SSceMsVcIyNr2ZnkMf3hnzBjL7Efsthif0QXyfB0LZDXwNuDmNlDtUV2veyVGSDE2UqiSbDBRu6MYTvtfYX87RmSWla3HHO09pwpcrhxyHs3mliQsXyB2+D+ovTOIjYukQLnh34jQnwiWEYLDXkHEHHTpdXqAnA7tVen3ardLyTWgky6DUwlfcnoVsAPXnDkqQ9aE2w7SoAsNtEAddmkjKoYYdBkV5aUInU/DyFVF7qnlCcvWm+EkN1708xZUQ1KzdAyeeoIrMkBgpSoyeNQ9pcU3T7B100UxLo/FP/A7y96b2kHnKJU6fVyD3OeHvP9SeucurC6jn2YoG3e1wSOQcbEuCsdGjqgAHnKt2SMPsEBu2qJJcUdco9tANN5BdntBo7bLc/zcpXZH3TkRfRSndWXPaXDJaQNvbH7aLIUTCP9oQaqTN+9BQ+Egt7YsB4C58JZmC87FAuekDULc4LWK2gDPFf7F/PvBnMh7+YylPl/8LLrEnz2Q/GM0S1HLhBrDf6vzxV5wVzCu9Q2N0PCkg6lDAJFVWLTEbxcRukKxbyK88Yzrb4GuUY4F5V21fN4vuxkOay7eoiXUcHMN2IN+DwhNWQSm5pUnpqGTfCYj/ZBbAykP2UnVOClL6O2JQA2A== |
|
197 | 197 | 26ce8e7515036d3431a03aaeb7bc72dd96cb1112 0 iQJJBAABCgAzFiEE64UTlbQiPuL3ugso2lR0C/CHMroFAl6YlRUVHDc4OTVwdWxraXRAZ21haWwuY29tAAoJENpUdAvwhzK6Z3YP/iOqphn99v0z2OupCl0q8CepbcdZMJWW3j00OAHYSO43M0FULpMpzC2o+kZDeqeLyzN7DsjoGts2cUnAOe9WX73sPkX1n1dbiDcUSsRqNND+tCkEZMtTn4DaGNIq1zSkkm8Q7O/1uwZPnX6FaIRMBs9qGbdfmMPNEvzny2tgrKc3ra1+AA8RCdtsbpqhjy+xf+EKVB/SMsQVVSJEgPkUkW6PwpaspdrxQKgZrb7C7Jx/gRVzMTUmCQe1sVCSnZNO3I/woAqDY2UNg7/hBubeRh/EjoH1o4ONTXgBQdYCl7QdcwDHpDc2HstonrFq51qxBecHDVw+ZKQds63Ixtxuab3SK0o/SWabZ1v8bGaWnyWnRWXL/1qkyFWly+fjEGGlv1kHl3n0UmwlUY8FQJCYDZgR0FqQGXAF3vMJOEp82ysk6jWN/7NRzcnoUC7HpNo1jPMiPRjskgVf3bhErfUQnhlF1YsVu/jPTixyfftbiaZmwILMkaPF8Kg3Cyf63p2cdcnTHdbP1U6ncR+BucthlbFei4WL0J2iERb8TBeCxOyCHlEUq8kampjbmPXN7VxnK4oX3xeBTf8mMbvrD5Fv3svRD+SkCCKu/MwQvB1VT6q425TSKHbCWeNqGjVLvetpx+skVH7eaXLEQ3wlCfo/0OQTRimx2O73EnOF5r8Q2POm |
|
198 | cf3e07d7648a4371ce584d15dd692e7a6845792f 0 iQJJBAABCgAzFiEE64UTlbQiPuL3ugso2lR0C/CHMroFAl6sS5sVHDc4OTVwdWxraXRAZ21haWwuY29tAAoJENpUdAvwhzK6FQcP/1usy9WxajBppBZ54ep+qesxufLoux5qkRU7j4XZ0Id4/IcKQZeik0C/0mFMjc+dYhQDGpDiuXCADKMv5h2DCIoaWUC0GueVtVkPhhMW3zMg/BmepV7dhUuipfQ4fck8gYuaBOclunLX1MFd+CS/6BQ6XIrsKasnx9WrbO2JpieBXv+8I5mslChaZf2AxeIvUVb2BkKqsCD0rqbIjTjtfHWJpaH6spFa7XX/BZWeEYz2Nc6LVJNZY0AmvJh8ebpoGOx85dokRIEAzTmBh04SbkChi+350ki6MvG3Ax+3yrUZVc1PJtBDreL7dMs7Y3ENafSMhKnBrRaPVMyUHEm2Ygn4cmJ1YiGw4OWha1n7dtRW/uI96lXKDt8iLAQ4WBRojPhYNl4L3b6/6voCgpZUOpd7PgTRc3/00siCmYIOQzAO0HkDsALoNpk8LcCxpPFYTr8dF3bSsAT9fuaLNV6tI2ofbRLXh0gFXYdaWu10eVRrSMUMiH7n3H6EpzLa4sNdyFrK0vU4aSTlBERcjj2rj86dY0XQQL181V7Yhg8m8nyj+BzraRh7et2UXNsVosOnbTa1XX0qFVu+qAVp2BeqC4k31jm0MJk+1pDzkuAPs07z3ITwkDmTHjzxm5qoZyZ1/n37BB6miD+8xJYNH7vBX/yrDW790HbloasQOcXcerNR |
@@ -208,3 +208,4 7f5410dfc8a64bb587d19637deb95d378fd1eb5c | |||
|
208 | 208 | 6d121acbb82e65fe4dd3c2318a1b61981b958492 5.3.1 |
|
209 | 209 | 8fca7e8449a847e3cf1054f2c07b51237699fad3 5.3.2 |
|
210 | 210 | 26ce8e7515036d3431a03aaeb7bc72dd96cb1112 5.4rc0 |
|
211 | cf3e07d7648a4371ce584d15dd692e7a6845792f 5.4 |
@@ -1307,6 +1307,26 def phabsend(ui, repo, *revs, **opts): | |||
|
1307 | 1307 | if any(c for c in ctxs if c.obsolete()): |
|
1308 | 1308 | raise error.Abort(_(b"obsolete commits cannot be posted for review")) |
|
1309 | 1309 | |
|
1310 | # Ensure the local commits are an unbroken range. The semantics of the | |
|
1311 | # --fold option implies this, and the auto restacking of orphans requires | |
|
1312 | # it. Otherwise A+C in A->B->C will cause B to be orphaned, and C' to | |
|
1313 | # get A' as a parent. | |
|
1314 | def _fail_nonlinear_revs(revs, skiprev, revtype): | |
|
1315 | badnodes = [repo[r].node() for r in revs if r != skiprev] | |
|
1316 | raise error.Abort( | |
|
1317 | _(b"cannot phabsend multiple %s revisions: %s") | |
|
1318 | % (revtype, scmutil.nodesummaries(repo, badnodes)), | |
|
1319 | hint=_(b"the revisions must form a linear chain"), | |
|
1320 | ) | |
|
1321 | ||
|
1322 | heads = repo.revs(b'heads(%ld)', revs) | |
|
1323 | if len(heads) > 1: | |
|
1324 | _fail_nonlinear_revs(heads, heads.max(), b"head") | |
|
1325 | ||
|
1326 | roots = repo.revs(b'roots(%ld)', revs) | |
|
1327 | if len(roots) > 1: | |
|
1328 | _fail_nonlinear_revs(roots, roots.min(), b"root") | |
|
1329 | ||
|
1310 | 1330 | fold = opts.get(b'fold') |
|
1311 | 1331 | if fold: |
|
1312 | 1332 | if len(revs) == 1: |
@@ -1322,13 +1342,6 def phabsend(ui, repo, *revs, **opts): | |||
|
1322 | 1342 | if not opts.get(b"amend"): |
|
1323 | 1343 | raise error.Abort(_(b"cannot fold with --no-amend")) |
|
1324 | 1344 | |
|
1325 | # Ensure the local commits are an unbroken range | |
|
1326 | revrange = repo.revs(b'(first(%ld)::last(%ld))', revs, revs) | |
|
1327 | if any(r for r in revs if r not in revrange) or any( | |
|
1328 | r for r in revrange if r not in revs | |
|
1329 | ): | |
|
1330 | raise error.Abort(_(b"cannot fold non-linear revisions")) | |
|
1331 | ||
|
1332 | 1345 | # It might be possible to bucketize the revisions by the DREV value, and |
|
1333 | 1346 | # iterate over those groups when posting, and then again when amending. |
|
1334 | 1347 | # But for simplicity, require all selected revisions to be for the same |
@@ -181,7 +181,7 Phabsending a skipped commit: | |||
|
181 | 181 | 1849d7828727 mapped to old nodes ['1849d7828727'] |
|
182 | 182 | D7919 - skipped - 1849d7828727: create comment for phabricator test |
|
183 | 183 | |
|
184 |
Phabsend doesn't create an instability when re |
|
|
184 | Phabsend doesn't create an instability when restacking existing revisions on top | |
|
185 | 185 | of new revisions. |
|
186 | 186 | |
|
187 | 187 | $ hg init reorder |
@@ -589,6 +589,13 Phabimport accepts multiple DREVSPECs | |||
|
589 | 589 | applying patch from D7917 |
|
590 | 590 | applying patch from D7918 |
|
591 | 591 | |
|
592 | Phabsend requires a linear range of commits | |
|
593 | ||
|
594 | $ hg phabsend -r 0+2+3 | |
|
595 | abort: cannot phabsend multiple head revisions: c44b38f24a45 | |
|
596 | (the revisions must form a linear chain) | |
|
597 | [255] | |
|
598 | ||
|
592 | 599 | Validate arguments with --fold |
|
593 | 600 | |
|
594 | 601 | $ hg phabsend --fold -r 1 |
@@ -597,9 +604,6 Validate arguments with --fold | |||
|
597 | 604 | $ hg phabsend --fold --no-amend -r 1:: |
|
598 | 605 | abort: cannot fold with --no-amend |
|
599 | 606 | [255] |
|
600 | $ hg phabsend --fold -r 0+3 | |
|
601 | abort: cannot fold non-linear revisions | |
|
602 | [255] | |
|
603 | 607 | $ hg phabsend --fold -r 1:: |
|
604 | 608 | abort: cannot fold revisions with different DREV values |
|
605 | 609 | [255] |
General Comments 0
You need to be logged in to leave comments.
Login now