Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 72.53 KB | None | 0 0
  1. this patch series consists of 30 patches.
  2.  
  3. (optional) Subject: [PATCH 00 of 30]
  4. Cc:
  5.  
  6. displaying [PATCH 01 of 30] shelve: test obs-based shelve on empty repos ...
  7. Content-Type: text/plain; charset="us-ascii"
  8. MIME-Version: 1.0
  9. Content-Transfer-Encoding: 7bit
  10. Subject: [PATCH 01 of 30] shelve: test obs-based shelve on empty repos
  11. X-Mercurial-Node: a3fcb25fc9b3c861b345587b04d6dbe4bf7aafa7
  12. X-Mercurial-Series-Index: 1
  13. X-Mercurial-Series-Total: 30
  14. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  15. Date: Thu, 19 Jan 2017 06:20:45 -0800
  16. From: Kostia Balytskyi <ikostia@fb.com>
  17. To: mercurial-devel@mercurial-scm.org
  18.  
  19. # HG changeset patch
  20. # User Kostia Balytskyi <ikostia@fb.com>
  21. # Date 1484740179 28800
  22. #      Wed Jan 18 03:49:39 2017 -0800
  23. # Node ID a3fcb25fc9b3c861b345587b04d6dbe4bf7aafa7
  24. # Parent  0b35fe5be1282c0c0450573b760e8f08fc449152
  25. shelve: test obs-based shelve on empty repos
  26.  
  27. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  28. --- a/tests/test-shelve.t
  29. +++ b/tests/test-shelve.t
  30. @@ -1710,3 +1710,79 @@ Unshelve respects --keep even if user in
  31.    $ hg shelve --list
  32.    default         (*s ago)    changes to: 1 (glob)
  33.    $ cd ..
  34. +
  35. +Obs-based shelve testing section
  36. +
  37. +Make sure obs-based shelve can be used with an empty repo
  38. +  $ cd $TESTTMP
  39. +  $ hg init obsrepo
  40. +  $ cd obsrepo
  41. +  $ cat <<EOF >> .hg/hgrc
  42. +  > [experimental]
  43. +  > evolution=createmarkers
  44. +  > obsshelve=True
  45. +  > [extensions]
  46. +  > mq =
  47. +  > shelve =
  48. +  > [defaults]
  49. +  > diff = --nodates --git
  50. +  > qnew = --date '0 0'
  51. +  > [shelve]
  52. +  > maxbackups = 2
  53. +  > EOF
  54. +
  55. +  $ mkdir a b
  56. +  $ echo a > a/a
  57. +  $ echo b > b/b
  58. +  $ echo c > c
  59. +  $ echo d > d
  60. +  $ echo x > x
  61. +  $ hg addremove -q
  62. +  $ hg shelve
  63. +  shelved as default
  64. +  0 files updated, 0 files merged, 5 files removed, 0 files unresolved
  65. +  $ hg shelve --list
  66. +  default         (*s ago)    (changes in empty repository) (glob)
  67. +  $ hg revert --all
  68. +  $ hg unshelve
  69. +  unshelving change 'default'
  70. +  $ hg diff
  71. +  diff --git a/a/a b/a/a
  72. +  new file mode 100644
  73. +  --- /dev/null
  74. +  +++ b/a/a
  75. +  @@ -0,0 +1,1 @@
  76. +  +a
  77. +  diff --git a/b/b b/b/b
  78. +  new file mode 100644
  79. +  --- /dev/null
  80. +  +++ b/b/b
  81. +  @@ -0,0 +1,1 @@
  82. +  +b
  83. +  diff --git a/c b/c
  84. +  new file mode 100644
  85. +  --- /dev/null
  86. +  +++ b/c
  87. +  @@ -0,0 +1,1 @@
  88. +  +c
  89. +  diff --git a/d b/d
  90. +  new file mode 100644
  91. +  --- /dev/null
  92. +  +++ b/d
  93. +  @@ -0,0 +1,1 @@
  94. +  +d
  95. +  diff --git a/x b/x
  96. +  new file mode 100644
  97. +  --- /dev/null
  98. +  +++ b/x
  99. +  @@ -0,0 +1,1 @@
  100. +  +x
  101. +  $ hg ci -qm "initial commit"
  102. +  $ hg shelve
  103. +  nothing changed
  104. +  [1]
  105. +
  106. +Make sure shelve files were backed up
  107. +  $ ls .hg/shelve-backup
  108. +  default.oshelve
  109. +  default.patch
  110.  
  111. displaying [PATCH 02 of 30] shelve: test obs-shelve's behavior in combination with mq ...
  112. Content-Type: text/plain; charset="us-ascii"
  113. MIME-Version: 1.0
  114. Content-Transfer-Encoding: 7bit
  115. Subject: [PATCH 02 of 30] shelve: test obs-shelve's behavior in combination
  116.  with mq
  117. X-Mercurial-Node: 9098e1e2aea49cf3f66e6f38c59d477805476aaa
  118. X-Mercurial-Series-Index: 2
  119. X-Mercurial-Series-Total: 30
  120. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  121. Date: Thu, 19 Jan 2017 06:20:46 -0800
  122. From: Kostia Balytskyi <ikostia@fb.com>
  123. To: mercurial-devel@mercurial-scm.org
  124.  
  125. # HG changeset patch
  126. # User Kostia Balytskyi <ikostia@fb.com>
  127. # Date 1484740179 28800
  128. #      Wed Jan 18 03:49:39 2017 -0800
  129. # Node ID 9098e1e2aea49cf3f66e6f38c59d477805476aaa
  130. # Parent  a3fcb25fc9b3c861b345587b04d6dbe4bf7aafa7
  131. shelve: test obs-shelve's behavior in combination with mq
  132.  
  133. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  134. --- a/tests/test-shelve.t
  135. +++ b/tests/test-shelve.t
  136. @@ -1786,3 +1786,56 @@ Make sure shelve files were backed up
  137.    $ ls .hg/shelve-backup
  138.    default.oshelve
  139.    default.patch
  140. +
  141. +Create an mq patch - shelving should work fine with a patch applied
  142. +  $ echo n > n
  143. +  $ hg add n
  144. +  $ hg commit n -m second
  145. +  $ hg qnew second.patch
  146. +
  147. +Shelve a change that we will delete later
  148. +  $ echo a >> a/a
  149. +  $ hg shelve
  150. +  shelved as default
  151. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  152. +
  153. +Set up some more complex changes to shelve
  154. +  $ echo a >> a/a
  155. +  $ hg mv b b.rename
  156. +  moving b/b to b.rename/b (glob)
  157. +  $ hg cp c c.copy
  158. +  $ hg status -C
  159. +  M a/a
  160. +  A b.rename/b
  161. +    b/b
  162. +  A c.copy
  163. +    c
  164. +  R b/b
  165. +
  166. +The common case - no options or filenames
  167. +  $ hg shelve
  168. +  shelved as default-01
  169. +  2 files updated, 0 files merged, 2 files removed, 0 files unresolved
  170. +  $ hg status -C
  171. +
  172. +Ensure that our shelved changes exist
  173. +  $ hg shelve -l
  174. +  default-01      (*)* changes to: [mq]: second.patch (glob)
  175. +  default         (*)* changes to: [mq]: second.patch (glob)
  176. +  $ hg shelve -l -p default
  177. +  default         (*)* changes to: [mq]: second.patch (glob)
  178. +  
  179. +  diff --git a/a/a b/a/a
  180. +  --- a/a/a
  181. +  +++ b/a/a
  182. +  @@ -1,1 +1,2 @@
  183. +   a
  184. +  +a
  185. +
  186. +  $ hg shelve --list --addremove
  187. +  abort: options '--list' and '--addremove' may not be used together
  188. +  [255]
  189. +
  190. +Delete our older shelved change
  191. +  $ hg shelve -d default
  192. +  $ hg qfinish -a -q
  193.  
  194. displaying [PATCH 03 of 30] shelve: test obs-shelve's backups and simple unshelve ...
  195. Content-Type: text/plain; charset="us-ascii"
  196. MIME-Version: 1.0
  197. Content-Transfer-Encoding: 7bit
  198. Subject: [PATCH 03 of 30] shelve: test obs-shelve's backups and simple unshelve
  199. X-Mercurial-Node: 75149e99425b2b3fdb69c4f03e5bfcd6c50e9cf7
  200. X-Mercurial-Series-Index: 3
  201. X-Mercurial-Series-Total: 30
  202. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  203. Date: Thu, 19 Jan 2017 06:20:47 -0800
  204. From: Kostia Balytskyi <ikostia@fb.com>
  205. To: mercurial-devel@mercurial-scm.org
  206.  
  207. # HG changeset patch
  208. # User Kostia Balytskyi <ikostia@fb.com>
  209. # Date 1484740179 28800
  210. #      Wed Jan 18 03:49:39 2017 -0800
  211. # Node ID 75149e99425b2b3fdb69c4f03e5bfcd6c50e9cf7
  212. # Parent  9098e1e2aea49cf3f66e6f38c59d477805476aaa
  213. shelve: test obs-shelve's backups and simple unshelve
  214.  
  215. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  216. --- a/tests/test-shelve.t
  217. +++ b/tests/test-shelve.t
  218. @@ -1839,3 +1839,59 @@ Ensure that our shelved changes exist
  219.  Delete our older shelved change
  220.    $ hg shelve -d default
  221.    $ hg qfinish -a -q
  222. +
  223. +Ensure shelve backups aren't overwritten
  224. +  $ ls .hg/shelve-backup/
  225. +  default-1.oshelve
  226. +  default-1.patch
  227. +  default.oshelve
  228. +  default.patch
  229. +
  230. +Local edits should not prevent a shelved change from applying
  231. +  $ printf "z\na\n" > a/a
  232. +  $ hg unshelve --keep
  233. +  unshelving change 'default-01'
  234. +  temporarily committing pending changes (restore with 'hg unshelve --abort')
  235. +  rebasing shelved changes
  236. +  rebasing 5:32c69314e062 "changes to: [mq]: second.patch"
  237. +  merging a/a
  238. +
  239. +  $ hg revert --all -q
  240. +  $ rm a/a.orig b.rename/b c.copy
  241. +
  242. +Apply it and make sure our state is as expected
  243. +(this also tests that same timestamp prevents backups from being
  244. +removed, even though there are more than 'maxbackups' backups)
  245. +  $ f -t .hg/shelve-backup/default.patch
  246. +  .hg/shelve-backup/default.patch: file
  247. +  $ touch -t 200001010000 .hg/shelve-backup/default.patch
  248. +  $ f -t .hg/shelve-backup/default-1.patch
  249. +  .hg/shelve-backup/default-1.patch: file
  250. +  $ touch -t 200001010000 .hg/shelve-backup/default-1.patch
  251. +
  252. +  $ hg unshelve
  253. +  unshelving change 'default-01'
  254. +  $ hg status -C
  255. +  M a/a
  256. +  A b.rename/b
  257. +    b/b
  258. +  A c.copy
  259. +    c
  260. +  R b/b
  261. +  $ hg shelve -l
  262. +
  263. +(both of default.oshelve and default-1.oshelve should be still kept,
  264. +because it is difficult to decide actual order of them from same timestamp)
  265. +  $ ls .hg/shelve-backup/
  266. +  default-01.oshelve
  267. +  default-01.patch
  268. +  default-1.oshelve
  269. +  default-1.patch
  270. +  default.oshelve
  271. +  default.patch
  272. +  $ hg unshelve
  273. +  abort: no shelved changes to apply!
  274. +  [255]
  275. +  $ hg unshelve foo
  276. +  abort: shelved change 'foo' not found
  277. +  [255]
  278.  
  279. displaying [PATCH 04 of 30] shelve: test obs-shelve with more cmd options ...
  280. Content-Type: text/plain; charset="us-ascii"
  281. MIME-Version: 1.0
  282. Content-Transfer-Encoding: 7bit
  283. Subject: [PATCH 04 of 30] shelve: test obs-shelve with more cmd options
  284. X-Mercurial-Node: d3963c08e5bfe34ac43290d49f3fbd755bddec01
  285. X-Mercurial-Series-Index: 4
  286. X-Mercurial-Series-Total: 30
  287. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  288. Date: Thu, 19 Jan 2017 06:20:48 -0800
  289. From: Kostia Balytskyi <ikostia@fb.com>
  290. To: mercurial-devel@mercurial-scm.org
  291.  
  292. # HG changeset patch
  293. # User Kostia Balytskyi <ikostia@fb.com>
  294. # Date 1484740179 28800
  295. #      Wed Jan 18 03:49:39 2017 -0800
  296. # Node ID d3963c08e5bfe34ac43290d49f3fbd755bddec01
  297. # Parent  75149e99425b2b3fdb69c4f03e5bfcd6c50e9cf7
  298. shelve: test obs-shelve with more cmd options
  299.  
  300. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  301. --- a/tests/test-shelve.t
  302. +++ b/tests/test-shelve.t
  303. @@ -1895,3 +1895,47 @@ because it is difficult to decide actual
  304.    $ hg unshelve foo
  305.    abort: shelved change 'foo' not found
  306.    [255]
  307. +
  308. +Named shelves, specific filenames, and "commit messages" should all work
  309. +(this tests also that editor is invoked, if '--edit' is specified)
  310. +  $ hg status -C
  311. +  M a/a
  312. +  A b.rename/b
  313. +    b/b
  314. +  A c.copy
  315. +    c
  316. +  R b/b
  317. +  $ HGEDITOR=cat hg shelve -q -n wibble -m wat -e a
  318. +  wat
  319. +  
  320. +  
  321. +  HG: Enter commit message.  Lines beginning with 'HG:' are removed.
  322. +  HG: Leave message empty to abort commit.
  323. +  HG: --
  324. +  HG: user: shelve@localhost
  325. +  HG: branch 'default'
  326. +  HG: changed a/a
  327. +
  328. +Expect "a" to no longer be present, but status otherwise unchanged
  329. +  $ hg status -C
  330. +  A b.rename/b
  331. +    b/b
  332. +  A c.copy
  333. +    c
  334. +  R b/b
  335. +  $ hg shelve -l --stat
  336. +  wibble          (*)    wat (glob)
  337. +   a/a |  1 +
  338. +   1 files changed, 1 insertions(+), 0 deletions(-)
  339. +
  340. +And now "a/a" should reappear
  341. +  $ cd a
  342. +  $ hg unshelve -q wibble
  343. +  $ cd ..
  344. +  $ hg status -C
  345. +  M a/a
  346. +  A b.rename/b
  347. +    b/b
  348. +  A c.copy
  349. +    c
  350. +  R b/b
  351.  
  352. displaying [PATCH 05 of 30] shelve: test obs-shelve's backups cleanup ...
  353. Content-Type: text/plain; charset="us-ascii"
  354. MIME-Version: 1.0
  355. Content-Transfer-Encoding: 7bit
  356. Subject: [PATCH 05 of 30] shelve: test obs-shelve's backups cleanup
  357. X-Mercurial-Node: b6f57212759bc1956ccfd3673537fbdcb55fb2b3
  358. X-Mercurial-Series-Index: 5
  359. X-Mercurial-Series-Total: 30
  360. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  361. Date: Thu, 19 Jan 2017 06:20:49 -0800
  362. From: Kostia Balytskyi <ikostia@fb.com>
  363. To: mercurial-devel@mercurial-scm.org
  364.  
  365. # HG changeset patch
  366. # User Kostia Balytskyi <ikostia@fb.com>
  367. # Date 1484740179 28800
  368. #      Wed Jan 18 03:49:39 2017 -0800
  369. # Node ID b6f57212759bc1956ccfd3673537fbdcb55fb2b3
  370. # Parent  d3963c08e5bfe34ac43290d49f3fbd755bddec01
  371. shelve: test obs-shelve's backups cleanup
  372.  
  373. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  374. --- a/tests/test-shelve.t
  375. +++ b/tests/test-shelve.t
  376. @@ -1939,3 +1939,10 @@ And now "a/a" should reappear
  377.    A c.copy
  378.      c
  379.    R b/b
  380. +
  381. +Ensure old shelve backups are being deleted automatically
  382. +  $ ls .hg/shelve-backup/
  383. +  default-01.oshelve
  384. +  default-01.patch
  385. +  wibble.oshelve
  386. +  wibble.patch
  387.  
  388. displaying [PATCH 06 of 30] shelve: test obs-shelve when merge conflicts occur ...
  389. Content-Type: text/plain; charset="us-ascii"
  390. MIME-Version: 1.0
  391. Content-Transfer-Encoding: 7bit
  392. Subject: [PATCH 06 of 30] shelve: test obs-shelve when merge conflicts occur
  393. X-Mercurial-Node: c45452a6615b60426765932c3418a6a76b12fcf0
  394. X-Mercurial-Series-Index: 6
  395. X-Mercurial-Series-Total: 30
  396. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  397. Date: Thu, 19 Jan 2017 06:20:50 -0800
  398. From: Kostia Balytskyi <ikostia@fb.com>
  399. To: mercurial-devel@mercurial-scm.org
  400.  
  401. # HG changeset patch
  402. # User Kostia Balytskyi <ikostia@fb.com>
  403. # Date 1484740179 28800
  404. #      Wed Jan 18 03:49:39 2017 -0800
  405. # Node ID c45452a6615b60426765932c3418a6a76b12fcf0
  406. # Parent  b6f57212759bc1956ccfd3673537fbdcb55fb2b3
  407. shelve: test obs-shelve when merge conflicts occur
  408.  
  409. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  410. --- a/tests/test-shelve.t
  411. +++ b/tests/test-shelve.t
  412. @@ -1946,3 +1946,135 @@ Ensure old shelve backups are being dele
  413.    default-01.patch
  414.    wibble.oshelve
  415.    wibble.patch
  416. +
  417. +Cause unshelving to result in a merge with 'a' conflicting
  418. +  $ hg shelve -q
  419. +  $ echo c>>a/a
  420. +  $ hg commit -m second
  421. +  $ hg tip --template '{files}\n'
  422. +  a/a
  423. +
  424. +Add an unrelated change that should be preserved
  425. +  $ mkdir foo
  426. +  $ echo foo > foo/foo
  427. +  $ hg add foo/foo
  428. +
  429. +Force a conflicted merge to occur
  430. +  $ hg unshelve
  431. +  unshelving change 'default'
  432. +  temporarily committing pending changes (restore with 'hg unshelve --abort')
  433. +  rebasing shelved changes
  434. +  rebasing 5:32c69314e062 "changes to: [mq]: second.patch"
  435. +  merging a/a
  436. +  warning: conflicts while merging a/a! (edit, then use 'hg resolve --mark')
  437. +  unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
  438. +  [1]
  439. +
  440. +Ensure that we have a merge with unresolved conflicts
  441. +  $ hg heads -q --template '{rev}\n'
  442. +  12
  443. +  5
  444. +  $ hg parents -q --template '{rev}\n'
  445. +  12
  446. +  5
  447. +  $ hg status
  448. +  M a/a
  449. +  M b.rename/b
  450. +  M c.copy
  451. +  R b/b
  452. +  ? a/a.orig
  453. +  $ hg diff
  454. +  diff --git a/a/a b/a/a
  455. +  --- a/a/a
  456. +  +++ b/a/a
  457. +  @@ -1,2 +1,6 @@
  458. +   a
  459. +  +<<<<<<< dest:   * - shelve: pending changes temporary commit (glob)
  460. +   c
  461. +  +=======
  462. +  +a
  463. +  +>>>>>>> source: 32c69314e062 - shelve: changes to: [mq]: second.patch
  464. +  diff --git a/b/b b/b.rename/b
  465. +  rename from b/b
  466. +  rename to b.rename/b
  467. +  diff --git a/c b/c.copy
  468. +  copy from c
  469. +  copy to c.copy
  470. +  $ hg resolve -l
  471. +  U a/a
  472. +
  473. +  $ hg shelve
  474. +  abort: unshelve already in progress
  475. +  (use 'hg unshelve --continue' or 'hg unshelve --abort')
  476. +  [255]
  477. +
  478. +Abort the unshelve and be happy
  479. +  $ hg status
  480. +  M a/a
  481. +  M b.rename/b
  482. +  M c.copy
  483. +  R b/b
  484. +  ? a/a.orig
  485. +  $ hg unshelve -a
  486. +  rebase aborted
  487. +  unshelve of 'default' aborted
  488. +  $ hg heads -q
  489. +  11:2e69b451d1ea
  490. +  $ hg parents | grep changeset
  491. +  changeset:   11:2e69b451d1ea
  492. +  $ hg resolve -l
  493. +  $ hg status
  494. +  A foo/foo
  495. +  ? a/a.orig
  496. +
  497. +Try to continue with no unshelve underway
  498. +  $ hg unshelve -c
  499. +  abort: no unshelve in progress
  500. +  [255]
  501. +  $ hg status
  502. +  A foo/foo
  503. +  ? a/a.orig
  504. +
  505. +Redo the unshelve to get a conflict
  506. +  $ hg unshelve -q
  507. +  warning: conflicts while merging a/a! (edit, then use 'hg resolve --mark')
  508. +  unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
  509. +  [1]
  510. +
  511. +Attempt to continue
  512. +  $ hg unshelve -c
  513. +  abort: unresolved conflicts, can't continue
  514. +  (see 'hg resolve', then 'hg unshelve --continue')
  515. +  [255]
  516. +  $ hg revert -r . a/a
  517. +  $ hg resolve -m a/a
  518. +  (no more unresolved files)
  519. +  continue: hg unshelve --continue
  520. +  $ hg commit -m 'commit while unshelve in progress'
  521. +  abort: unshelve already in progress
  522. +  (use 'hg unshelve --continue' or 'hg unshelve --abort')
  523. +  [255]
  524. +  $ hg graft --continue
  525. +  abort: no graft in progress
  526. +  (continue: hg unshelve --continue)
  527. +  [255]
  528. +  $ hg unshelve -c --trace
  529. +  rebasing 5:32c69314e062 "changes to: [mq]: second.patch"
  530. +  unshelve of 'default' complete
  531. +
  532. +Ensure the repo is as we hope
  533. +  $ hg parents | grep changeset
  534. +  changeset:   11:2e69b451d1ea
  535. +  $ hg heads -q
  536. +  11:2e69b451d1ea
  537. +  $ hg status -C
  538. +  A b.rename/b
  539. +    b/b
  540. +  A c.copy
  541. +    c
  542. +  A foo/foo
  543. +  R b/b
  544. +  ? a/a.orig
  545. +
  546. +there should be no shelves left
  547. +  $ hg shelve -l
  548.  
  549. displaying [PATCH 07 of 30] shelve: test obs-shelve with metadata-only changes ...
  550. Content-Type: text/plain; charset="us-ascii"
  551. MIME-Version: 1.0
  552. Content-Transfer-Encoding: 7bit
  553. Subject: [PATCH 07 of 30] shelve: test obs-shelve with metadata-only changes
  554. X-Mercurial-Node: aba887f5b54ef617ed3b004446329d233d801def
  555. X-Mercurial-Series-Index: 7
  556. X-Mercurial-Series-Total: 30
  557. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  558. Date: Thu, 19 Jan 2017 06:20:51 -0800
  559. From: Kostia Balytskyi <ikostia@fb.com>
  560. To: mercurial-devel@mercurial-scm.org
  561.  
  562. # HG changeset patch
  563. # User Kostia Balytskyi <ikostia@fb.com>
  564. # Date 1484740179 28800
  565. #      Wed Jan 18 03:49:39 2017 -0800
  566. # Node ID aba887f5b54ef617ed3b004446329d233d801def
  567. # Parent  c45452a6615b60426765932c3418a6a76b12fcf0
  568. shelve: test obs-shelve with metadata-only changes
  569.  
  570. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  571. --- a/tests/test-shelve.t
  572. +++ b/tests/test-shelve.t
  573. @@ -2076,5 +2076,16 @@ Ensure the repo is as we hope
  574.    R b/b
  575.    ? a/a.orig
  576.  
  577. -there should be no shelves left
  578. +There should be no shelves left
  579.    $ hg shelve -l
  580. +
  581. +#if execbit
  582. +Ensure that metadata-only changes are shelved
  583. +  $ chmod +x a/a
  584. +  $ hg shelve -q -n execbit a/a
  585. +  $ hg status a/a
  586. +  $ hg unshelve -q execbit
  587. +  $ hg status a/a
  588. +  M a/a
  589. +  $ hg revert a/a
  590. +#endif
  591.  
  592. displaying [PATCH 08 of 30] shelve: test obs-shelve with symlinks ...
  593. Content-Type: text/plain; charset="us-ascii"
  594. MIME-Version: 1.0
  595. Content-Transfer-Encoding: 7bit
  596. Subject: [PATCH 08 of 30] shelve: test obs-shelve with symlinks
  597. X-Mercurial-Node: 3d784431edc194d4c7a628624ff5111f1ecac8fc
  598. X-Mercurial-Series-Index: 8
  599. X-Mercurial-Series-Total: 30
  600. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  601. Date: Thu, 19 Jan 2017 06:20:52 -0800
  602. From: Kostia Balytskyi <ikostia@fb.com>
  603. To: mercurial-devel@mercurial-scm.org
  604.  
  605. # HG changeset patch
  606. # User Kostia Balytskyi <ikostia@fb.com>
  607. # Date 1484740179 28800
  608. #      Wed Jan 18 03:49:39 2017 -0800
  609. # Node ID 3d784431edc194d4c7a628624ff5111f1ecac8fc
  610. # Parent  aba887f5b54ef617ed3b004446329d233d801def
  611. shelve: test obs-shelve with symlinks
  612.  
  613. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  614. --- a/tests/test-shelve.t
  615. +++ b/tests/test-shelve.t
  616. @@ -2089,3 +2089,15 @@ Ensure that metadata-only changes are sh
  617.    M a/a
  618.    $ hg revert a/a
  619.  #endif
  620. +
  621. +#if symlink
  622. +Ensure symlinks are properly handled
  623. +  $ rm a/a
  624. +  $ ln -s foo a/a
  625. +  $ hg shelve -q -n symlink a/a
  626. +  $ hg status a/a
  627. +  $ hg unshelve -q symlink
  628. +  $ hg status a/a
  629. +  M a/a
  630. +  $ hg revert a/a
  631. +#endif
  632.  
  633. displaying [PATCH 09 of 30] shelve: test obs-shelve with --tool ...
  634. Content-Type: text/plain; charset="us-ascii"
  635. MIME-Version: 1.0
  636. Content-Transfer-Encoding: 7bit
  637. Subject: [PATCH 09 of 30] shelve: test obs-shelve with --tool
  638. X-Mercurial-Node: 6b7bf6b32498d5a285e03f05ae6612e7b39c40e7
  639. X-Mercurial-Series-Index: 9
  640. X-Mercurial-Series-Total: 30
  641. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  642. Date: Thu, 19 Jan 2017 06:20:53 -0800
  643. From: Kostia Balytskyi <ikostia@fb.com>
  644. To: mercurial-devel@mercurial-scm.org
  645.  
  646. # HG changeset patch
  647. # User Kostia Balytskyi <ikostia@fb.com>
  648. # Date 1484740179 28800
  649. #      Wed Jan 18 03:49:39 2017 -0800
  650. # Node ID 6b7bf6b32498d5a285e03f05ae6612e7b39c40e7
  651. # Parent  3d784431edc194d4c7a628624ff5111f1ecac8fc
  652. shelve: test obs-shelve with --tool
  653.  
  654. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  655. --- a/tests/test-shelve.t
  656. +++ b/tests/test-shelve.t
  657. @@ -2101,3 +2101,49 @@ Ensure symlinks are properly handled
  658.    M a/a
  659.    $ hg revert a/a
  660.  #endif
  661. +
  662. +Set up another conflict between a commit and a shelved change
  663. +  $ hg revert -q -C -a
  664. +  $ rm a/a.orig b.rename/b c.copy
  665. +  $ echo a >> a/a
  666. +  $ hg shelve -q
  667. +  $ echo x >> a/a
  668. +  $ hg ci -m 'create conflict'
  669. +  $ hg add foo/foo
  670. +
  671. +If we resolve a conflict while unshelving, the unshelve should succeed
  672. +  $ hg unshelve --tool :merge-other --keep
  673. +  unshelving change 'default'
  674. +  temporarily committing pending changes (restore with 'hg unshelve --abort')
  675. +  rebasing shelved changes
  676. +  rebasing .* "changes to: second" (re)
  677. +  merging a/a
  678. +  $ hg shelve -l
  679. +  default         (*)* changes to: second (glob)
  680. +  $ hg status
  681. +  M a/a
  682. +  A foo/foo
  683. +  $ cat a/a
  684. +  a
  685. +  c
  686. +  a
  687. +  $ cat > a/a << EOF
  688. +  > a
  689. +  > c
  690. +  > x
  691. +  > EOF
  692. +  $ sleep 1
  693. +  $ HGMERGE=true hg unshelve
  694. +  unshelving change 'default'
  695. +  temporarily committing pending changes (restore with 'hg unshelve --abort')
  696. +  rebasing shelved changes
  697. +  rebasing .* "changes to: second" (re)
  698. +  merging a/a
  699. +  note: rebase of .* created no changes to commit (re)
  700. +  $ hg shelve -l
  701. +  $ hg status
  702. +  A foo/foo
  703. +  $ cat a/a
  704. +  a
  705. +  c
  706. +  x
  707.  
  708. displaying [PATCH 10 of 30] shelve: test obs-shelve's keep and cleanup ...
  709. Content-Type: text/plain; charset="us-ascii"
  710. MIME-Version: 1.0
  711. Content-Transfer-Encoding: 7bit
  712. Subject: [PATCH 10 of 30] shelve: test obs-shelve's keep and cleanup
  713. X-Mercurial-Node: e29ee46f476dd1fc3f6bd60ffd83aa66bf96f51b
  714. X-Mercurial-Series-Index: 10
  715. X-Mercurial-Series-Total: 30
  716. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  717. Date: Thu, 19 Jan 2017 06:20:54 -0800
  718. From: Kostia Balytskyi <ikostia@fb.com>
  719. To: mercurial-devel@mercurial-scm.org
  720.  
  721. # HG changeset patch
  722. # User Kostia Balytskyi <ikostia@fb.com>
  723. # Date 1484740179 28800
  724. #      Wed Jan 18 03:49:39 2017 -0800
  725. # Node ID e29ee46f476dd1fc3f6bd60ffd83aa66bf96f51b
  726. # Parent  6b7bf6b32498d5a285e03f05ae6612e7b39c40e7
  727. shelve: test obs-shelve's keep and cleanup
  728.  
  729. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  730. --- a/tests/test-shelve.t
  731. +++ b/tests/test-shelve.t
  732. @@ -2147,3 +2147,16 @@ If we resolve a conflict while unshelvin
  733.    a
  734.    c
  735.    x
  736. +
  737. +Test keep and cleanup
  738. +  $ hg shelve
  739. +  shelved as default
  740. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  741. +  $ hg shelve --list
  742. +  default         (*)* changes to: create conflict (glob)
  743. +  $ hg unshelve -k
  744. +  unshelving change 'default'
  745. +  $ hg shelve --list
  746. +  default         (*)* changes to: create conflict (glob)
  747. +  $ hg shelve --cleanup
  748. +  $ hg shelve --list
  749.  
  750. displaying [PATCH 11 of 30] shelve: test how obs-shelve treats bookmarks ...
  751. Content-Type: text/plain; charset="us-ascii"
  752. MIME-Version: 1.0
  753. Content-Transfer-Encoding: 7bit
  754. Subject: [PATCH 11 of 30] shelve: test how obs-shelve treats bookmarks
  755. X-Mercurial-Node: 3fd9481ee0965639901cffaabe9b894b2d71ce80
  756. X-Mercurial-Series-Index: 11
  757. X-Mercurial-Series-Total: 30
  758. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  759. Date: Thu, 19 Jan 2017 06:20:55 -0800
  760. From: Kostia Balytskyi <ikostia@fb.com>
  761. To: mercurial-devel@mercurial-scm.org
  762.  
  763. # HG changeset patch
  764. # User Kostia Balytskyi <ikostia@fb.com>
  765. # Date 1484740179 28800
  766. #      Wed Jan 18 03:49:39 2017 -0800
  767. # Node ID 3fd9481ee0965639901cffaabe9b894b2d71ce80
  768. # Parent  e29ee46f476dd1fc3f6bd60ffd83aa66bf96f51b
  769. shelve: test how obs-shelve treats bookmarks
  770.  
  771. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  772. --- a/tests/test-shelve.t
  773. +++ b/tests/test-shelve.t
  774. @@ -2160,3 +2160,17 @@ Test keep and cleanup
  775.    default         (*)* changes to: create conflict (glob)
  776.    $ hg shelve --cleanup
  777.    $ hg shelve --list
  778. +
  779. +Test bookmarks
  780. +  $ hg bookmark test
  781. +  $ hg bookmark
  782. +   \* test                      * (glob)
  783. +  $ hg shelve
  784. +  shelved as test
  785. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  786. +  $ hg bookmark
  787. +   \* test                      * (glob)
  788. +  $ hg unshelve
  789. +  unshelving change 'test'
  790. +  $ hg bookmark
  791. +   \* test                      * (glob)
  792.  
  793. displaying [PATCH 12 of 30] shelve: test obs-shelve with disabled mq ...
  794. Content-Type: text/plain; charset="us-ascii"
  795. MIME-Version: 1.0
  796. Content-Transfer-Encoding: 7bit
  797. Subject: [PATCH 12 of 30] shelve: test obs-shelve with disabled mq
  798. X-Mercurial-Node: a58cf5e454d2bf79a133f25be1c5d7e43ecba440
  799. X-Mercurial-Series-Index: 12
  800. X-Mercurial-Series-Total: 30
  801. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  802. Date: Thu, 19 Jan 2017 06:20:56 -0800
  803. From: Kostia Balytskyi <ikostia@fb.com>
  804. To: mercurial-devel@mercurial-scm.org
  805.  
  806. # HG changeset patch
  807. # User Kostia Balytskyi <ikostia@fb.com>
  808. # Date 1484740179 28800
  809. #      Wed Jan 18 03:49:39 2017 -0800
  810. # Node ID a58cf5e454d2bf79a133f25be1c5d7e43ecba440
  811. # Parent  3fd9481ee0965639901cffaabe9b894b2d71ce80
  812. shelve: test obs-shelve with disabled mq
  813.  
  814. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  815. --- a/tests/test-shelve.t
  816. +++ b/tests/test-shelve.t
  817. @@ -2174,3 +2174,17 @@ Test bookmarks
  818.    unshelving change 'test'
  819.    $ hg bookmark
  820.     \* test                      * (glob)
  821. +
  822. +Shelve should still work even if mq is disabled
  823. +  $ hg --config extensions.mq=! shelve
  824. +  shelved as test
  825. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  826. +  $ hg --config extensions.mq=! shelve --list
  827. +  test            (*)* changes to: create conflict (glob)
  828. +  $ hg bookmark
  829. +   * test                      * (glob)
  830. +  $ hg --config extensions.mq=! unshelve
  831. +  unshelving change 'test'
  832. +  $ hg bookmark
  833. +   * test                      * (glob)
  834. +  $ cd ..
  835.  
  836. displaying [PATCH 13 of 30] shelve: test that obs-shelve leaves a clean dirstate (issue4055) ...
  837. Content-Type: text/plain; charset="us-ascii"
  838. MIME-Version: 1.0
  839. Content-Transfer-Encoding: 7bit
  840. Subject: [PATCH 13 of 30] shelve: test that obs-shelve leaves a clean dirstate
  841.  (issue4055)
  842. X-Mercurial-Node: 33e8bd881b5371e5fa9eacbd905c2d223049ca01
  843. X-Mercurial-Series-Index: 13
  844. X-Mercurial-Series-Total: 30
  845. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  846. Date: Thu, 19 Jan 2017 06:20:57 -0800
  847. From: Kostia Balytskyi <ikostia@fb.com>
  848. To: mercurial-devel@mercurial-scm.org
  849.  
  850. # HG changeset patch
  851. # User Kostia Balytskyi <ikostia@fb.com>
  852. # Date 1484740179 28800
  853. #      Wed Jan 18 03:49:39 2017 -0800
  854. # Node ID 33e8bd881b5371e5fa9eacbd905c2d223049ca01
  855. # Parent  a58cf5e454d2bf79a133f25be1c5d7e43ecba440
  856. shelve: test that obs-shelve leaves a clean dirstate (issue4055)
  857.  
  858. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  859. --- a/tests/test-shelve.t
  860. +++ b/tests/test-shelve.t
  861. @@ -2188,3 +2188,35 @@ Shelve should still work even if mq is d
  862.    $ hg bookmark
  863.     * test                      * (glob)
  864.    $ cd ..
  865. +
  866. +Shelve should leave dirstate clean (issue4055)
  867. +  $ hg init obsshelverebase
  868. +  $ cd obsshelverebase
  869. +  $ cat <<EOF >> .hg/hgrc
  870. +  > [experimental]
  871. +  > evolution=createmarkers
  872. +  > obsshelve=True
  873. +  > EOF
  874. +  $ printf 'x\ny\n' > x
  875. +  $ echo z > z
  876. +  $ hg commit -Aqm xy
  877. +  $ echo z >> x
  878. +  $ hg commit -Aqm z
  879. +  $ hg up 0
  880. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  881. +  $ printf 'a\nx\ny\nz\n' > x
  882. +  $ hg commit -Aqm xyz
  883. +  $ echo c >> z
  884. +  $ hg shelve
  885. +  shelved as default
  886. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  887. +  $ hg rebase -d 1 --config extensions.rebase=
  888. +  rebasing 2:323bfa07f744 "xyz" (tip)
  889. +  merging x
  890. +  $ hg unshelve
  891. +  unshelving change 'default'
  892. +  rebasing shelved changes
  893. +  rebasing 3:82a0d7d6ba61 "changes to: xyz"
  894. +  $ hg status
  895. +  M z
  896. +  $ cd ..
  897.  
  898. displaying [PATCH 14 of 30] shelve: test obs-shelve and issue4068 ...
  899. Content-Type: text/plain; charset="us-ascii"
  900. MIME-Version: 1.0
  901. Content-Transfer-Encoding: 7bit
  902. Subject: [PATCH 14 of 30] shelve: test obs-shelve and issue4068
  903. X-Mercurial-Node: 5b95107020791f8acc7bd3b62b9064fb711e98c0
  904. X-Mercurial-Series-Index: 14
  905. X-Mercurial-Series-Total: 30
  906. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  907. Date: Thu, 19 Jan 2017 06:20:58 -0800
  908. From: Kostia Balytskyi <ikostia@fb.com>
  909. To: mercurial-devel@mercurial-scm.org
  910.  
  911. # HG changeset patch
  912. # User Kostia Balytskyi <ikostia@fb.com>
  913. # Date 1484740179 28800
  914. #      Wed Jan 18 03:49:39 2017 -0800
  915. # Node ID 5b95107020791f8acc7bd3b62b9064fb711e98c0
  916. # Parent  33e8bd881b5371e5fa9eacbd905c2d223049ca01
  917. shelve: test obs-shelve and issue4068
  918.  
  919. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  920. --- a/tests/test-shelve.t
  921. +++ b/tests/test-shelve.t
  922. @@ -2220,3 +2220,31 @@ Shelve should leave dirstate clean (issu
  923.    $ hg status
  924.    M z
  925.    $ cd ..
  926. +
  927. +Shelve should only unshelve pending changes (issue4068)
  928. +  $ hg init obssh-onlypendingchanges
  929. +  $ cd obssh-onlypendingchanges
  930. +  $ cat <<EOF >> .hg/hgrc
  931. +  > [experimental]
  932. +  > evolution=createmarkers
  933. +  > obsshelve=True
  934. +  > EOF
  935. +  $ touch a
  936. +  $ hg ci -Aqm a
  937. +  $ touch b
  938. +  $ hg ci -Aqm b
  939. +  $ hg up -q 0
  940. +  $ touch c
  941. +  $ hg ci -Aqm c
  942. +  $ touch d
  943. +  $ hg add d
  944. +  $ hg shelve
  945. +  shelved as default
  946. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  947. +  $ hg up -q 1
  948. +  $ hg unshelve
  949. +  unshelving change 'default'
  950. +  rebasing shelved changes
  951. +  rebasing 3:958bcbd1776e "changes to: c" (tip)
  952. +  $ hg status
  953. +  A d
  954.  
  955. displaying [PATCH 15 of 30] shelve: test obs-shelve and ancestor of original commit ...
  956. Content-Type: text/plain; charset="us-ascii"
  957. MIME-Version: 1.0
  958. Content-Transfer-Encoding: 7bit
  959. Subject: [PATCH 15 of 30] shelve: test obs-shelve and ancestor of original
  960.  commit
  961. X-Mercurial-Node: eb5b875b6cd719cc2e119e45c93ea6aafc543077
  962. X-Mercurial-Series-Index: 15
  963. X-Mercurial-Series-Total: 30
  964. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  965. Date: Thu, 19 Jan 2017 06:20:59 -0800
  966. From: Kostia Balytskyi <ikostia@fb.com>
  967. To: mercurial-devel@mercurial-scm.org
  968.  
  969. # HG changeset patch
  970. # User Kostia Balytskyi <ikostia@fb.com>
  971. # Date 1484740179 28800
  972. #      Wed Jan 18 03:49:39 2017 -0800
  973. # Node ID eb5b875b6cd719cc2e119e45c93ea6aafc543077
  974. # Parent  5b95107020791f8acc7bd3b62b9064fb711e98c0
  975. shelve: test obs-shelve and ancestor of original commit
  976.  
  977. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  978. --- a/tests/test-shelve.t
  979. +++ b/tests/test-shelve.t
  980. @@ -2248,3 +2248,16 @@ Shelve should only unshelve pending chan
  981.    rebasing 3:958bcbd1776e "changes to: c" (tip)
  982.    $ hg status
  983.    A d
  984. +
  985. +Unshelve should work on an ancestor of the original commit
  986. +  $ hg shelve
  987. +  shelved as default
  988. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  989. +  $ hg up 0
  990. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  991. +  $ hg unshelve
  992. +  unshelving change 'default'
  993. +  rebasing shelved changes
  994. +  rebasing 5:013284d9655e "changes to: b" (tip)
  995. +  $ hg status
  996. +  A d
  997.  
  998. displaying [PATCH 16 of 30] shelve: test obs-shelve and issue4073 ...
  999. Content-Type: text/plain; charset="us-ascii"
  1000. MIME-Version: 1.0
  1001. Content-Transfer-Encoding: 7bit
  1002. Subject: [PATCH 16 of 30] shelve: test obs-shelve and issue4073
  1003. X-Mercurial-Node: b3531b542bc941197a4f70d155263c46b780493d
  1004. X-Mercurial-Series-Index: 16
  1005. X-Mercurial-Series-Total: 30
  1006. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  1007. Date: Thu, 19 Jan 2017 06:21:00 -0800
  1008. From: Kostia Balytskyi <ikostia@fb.com>
  1009. To: mercurial-devel@mercurial-scm.org
  1010.  
  1011. # HG changeset patch
  1012. # User Kostia Balytskyi <ikostia@fb.com>
  1013. # Date 1484740179 28800
  1014. #      Wed Jan 18 03:49:39 2017 -0800
  1015. # Node ID b3531b542bc941197a4f70d155263c46b780493d
  1016. # Parent  eb5b875b6cd719cc2e119e45c93ea6aafc543077
  1017. shelve: test obs-shelve and issue4073
  1018.  
  1019. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  1020. --- a/tests/test-shelve.t
  1021. +++ b/tests/test-shelve.t
  1022. @@ -2261,3 +2261,11 @@ Unshelve should work on an ancestor of t
  1023.    rebasing 5:013284d9655e "changes to: b" (tip)
  1024.    $ hg status
  1025.    A d
  1026. +
  1027. +Test bug 4073 we need to enable obsolete markers for it
  1028. +  $ hg shelve
  1029. +  shelved as default
  1030. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1031. +  $ hg debugobsolete `hg --debug id -i -r 1`
  1032. +  $ hg unshelve
  1033. +  unshelving change 'default'
  1034.  
  1035. displaying [PATCH 17 of 30] shelve: test obs-shelve and issue4113 ...
  1036. Content-Type: text/plain; charset="us-ascii"
  1037. MIME-Version: 1.0
  1038. Content-Transfer-Encoding: 7bit
  1039. Subject: [PATCH 17 of 30] shelve: test obs-shelve and issue4113
  1040. X-Mercurial-Node: ae6f2343a6dd9a8a52395ecb0ecf76d6958c5f8c
  1041. X-Mercurial-Series-Index: 17
  1042. X-Mercurial-Series-Total: 30
  1043. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  1044. Date: Thu, 19 Jan 2017 06:21:01 -0800
  1045. From: Kostia Balytskyi <ikostia@fb.com>
  1046. To: mercurial-devel@mercurial-scm.org
  1047.  
  1048. # HG changeset patch
  1049. # User Kostia Balytskyi <ikostia@fb.com>
  1050. # Date 1484740179 28800
  1051. #      Wed Jan 18 03:49:39 2017 -0800
  1052. # Node ID ae6f2343a6dd9a8a52395ecb0ecf76d6958c5f8c
  1053. # Parent  b3531b542bc941197a4f70d155263c46b780493d
  1054. shelve: test obs-shelve and issue4113
  1055.  
  1056. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  1057. --- a/tests/test-shelve.t
  1058. +++ b/tests/test-shelve.t
  1059. @@ -2269,3 +2269,18 @@ Test bug 4073 we need to enable obsolete
  1060.    $ hg debugobsolete `hg --debug id -i -r 1`
  1061.    $ hg unshelve
  1062.    unshelving change 'default'
  1063. +
  1064. +Unshelve should leave unknown files alone (issue4113)
  1065. +  $ echo e > e
  1066. +  $ hg shelve
  1067. +  shelved as default
  1068. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1069. +  $ hg status
  1070. +  ? e
  1071. +  $ hg unshelve
  1072. +  unshelving change 'default'
  1073. +  $ hg status
  1074. +  A d
  1075. +  ? e
  1076. +  $ cat e
  1077. +  e
  1078.  
  1079. displaying [PATCH 18 of 30] shelve: test obs-shelve and untracked files in hard cases ...
  1080. Content-Type: text/plain; charset="us-ascii"
  1081. MIME-Version: 1.0
  1082. Content-Transfer-Encoding: 7bit
  1083. Subject: [PATCH 18 of 30] shelve: test obs-shelve and untracked files in hard
  1084.  cases
  1085. X-Mercurial-Node: f3e27c577c8eed45191ff8f479e17b1291d82a42
  1086. X-Mercurial-Series-Index: 18
  1087. X-Mercurial-Series-Total: 30
  1088. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  1089. Date: Thu, 19 Jan 2017 06:21:02 -0800
  1090. From: Kostia Balytskyi <ikostia@fb.com>
  1091. To: mercurial-devel@mercurial-scm.org
  1092.  
  1093. # HG changeset patch
  1094. # User Kostia Balytskyi <ikostia@fb.com>
  1095. # Date 1484740179 28800
  1096. #      Wed Jan 18 03:49:39 2017 -0800
  1097. # Node ID f3e27c577c8eed45191ff8f479e17b1291d82a42
  1098. # Parent  ae6f2343a6dd9a8a52395ecb0ecf76d6958c5f8c
  1099. shelve: test obs-shelve and untracked files in hard cases
  1100.  
  1101. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  1102. --- a/tests/test-shelve.t
  1103. +++ b/tests/test-shelve.t
  1104. @@ -2284,3 +2284,138 @@ Unshelve should leave unknown files alon
  1105.    ? e
  1106.    $ cat e
  1107.    e
  1108. +
  1109. +139. Unshelve should keep a copy of unknown files
  1110. +
  1111. +  $ hg add e
  1112. +  $ hg shelve
  1113. +  shelved as default
  1114. +  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
  1115. +  $ echo z > e
  1116. +  $ hg unshelve
  1117. +  unshelving change 'default'
  1118. +  $ cat e
  1119. +  e
  1120. +  $ cat e.orig
  1121. +  z
  1122. +
  1123. +140. Unshelve and conflicts with tracked and untracked files
  1124. +
  1125. + preparing:
  1126. +
  1127. +  $ rm *.orig
  1128. +  $ hg ci -qm 'commit stuff'
  1129. +  $ hg phase -p null:
  1130. +
  1131. + no other changes - no merge:
  1132. +
  1133. +  $ echo f > f
  1134. +  $ hg add f
  1135. +  $ hg shelve
  1136. +  shelved as default
  1137. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1138. +  $ echo g > f
  1139. +  $ hg unshelve
  1140. +  unshelving change 'default'
  1141. +  $ hg st
  1142. +  A f
  1143. +  ? f.orig
  1144. +  $ cat f
  1145. +  f
  1146. +  $ cat f.orig
  1147. +  g
  1148. +
  1149. + other uncommitted changes - merge:
  1150. +
  1151. +  $ hg st
  1152. +  A f
  1153. +  ? f.orig
  1154. +  $ hg shelve
  1155. +  shelved as default
  1156. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1157. +  $ hg log -G --template '{rev}  {desc|firstline}  {author}'
  1158. +  @  9  commit stuff  test
  1159. +  |
  1160. +  | o  2  c  test
  1161. +  |/
  1162. +  o  0  a  test
  1163. +  
  1164. +  $ mv f.orig f
  1165. +  $ echo 1 > a
  1166. +  $ hg unshelve --date '1073741824 0'
  1167. +  unshelving change 'default'
  1168. +  temporarily committing pending changes (restore with 'hg unshelve --abort')
  1169. +  rebasing shelved changes
  1170. +  rebasing 10:81152db69da7 "changes to: commit stuff"
  1171. +  merging f
  1172. +  warning: conflicts while merging f! (edit, then use 'hg resolve --mark')
  1173. +  unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
  1174. +  [1]
  1175. +  $ hg parents -T "{desc|firstline}\n" | sort
  1176. +  changes to: commit stuff
  1177. +  pending changes temporary commit
  1178. +
  1179. +  $ hg st
  1180. +  M f
  1181. +  ? f.orig
  1182. +  $ cat f
  1183. +  <<<<<<< dest:   5f6b880e719b - shelve: pending changes temporary commit
  1184. +  g
  1185. +  =======
  1186. +  f
  1187. +  >>>>>>> source: 81152db69da7 - shelve: changes to: commit stuff
  1188. +  $ cat f.orig
  1189. +  g
  1190. +  $ hg unshelve --abort -t false
  1191. +  tool option will be ignored
  1192. +  rebase aborted
  1193. +  unshelve of 'default' aborted
  1194. +  $ hg st
  1195. +  M a
  1196. +  ? f.orig
  1197. +  $ cat f.orig
  1198. +  g
  1199. +  $ hg unshelve
  1200. +  unshelving change 'default'
  1201. +  temporarily committing pending changes (restore with 'hg unshelve --abort')
  1202. +  rebasing shelved changes
  1203. +  rebasing 10:81152db69da7 "changes to: commit stuff"
  1204. +  $ hg st
  1205. +  M a
  1206. +  A f
  1207. +  ? f.orig
  1208. +
  1209. + other committed changes - merge:
  1210. +
  1211. +  $ hg shelve f
  1212. +  shelved as default
  1213. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1214. +  $ hg ci a -m 'intermediate other change'
  1215. +  $ mv f.orig f
  1216. +  $ hg unshelve
  1217. +  unshelving change 'default'
  1218. +  rebasing shelved changes
  1219. +  rebasing 10:81152db69da7 "changes to: commit stuff"
  1220. +  merging f
  1221. +  warning: conflicts while merging f! (edit, then use 'hg resolve --mark')
  1222. +  unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
  1223. +  [1]
  1224. +  $ hg st
  1225. +  M f
  1226. +  ? f.orig
  1227. +  $ cat f
  1228. +  <<<<<<< dest:   * - test: intermediate other change (glob)
  1229. +  g
  1230. +  =======
  1231. +  f
  1232. +  >>>>>>> source: 81152db69da7 - shelve: changes to: commit stuff
  1233. +  $ cat f.orig
  1234. +  g
  1235. +  $ hg unshelve --abort
  1236. +  rebase aborted
  1237. +  unshelve of 'default' aborted
  1238. +  $ hg st
  1239. +  ? f.orig
  1240. +  $ cat f.orig
  1241. +  g
  1242. +  $ hg shelve --delete default
  1243.  
  1244. displaying [PATCH 19 of 30] shelve: test obs-shelve and issue4398 ...
  1245. Content-Type: text/plain; charset="us-ascii"
  1246. MIME-Version: 1.0
  1247. Content-Transfer-Encoding: 7bit
  1248. Subject: [PATCH 19 of 30] shelve: test obs-shelve and issue4398
  1249. X-Mercurial-Node: c129b8895f49ca07b2873f7b2d3f3aa4411e3c1c
  1250. X-Mercurial-Series-Index: 19
  1251. X-Mercurial-Series-Total: 30
  1252. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  1253. Date: Thu, 19 Jan 2017 06:21:03 -0800
  1254. From: Kostia Balytskyi <ikostia@fb.com>
  1255. To: mercurial-devel@mercurial-scm.org
  1256.  
  1257. # HG changeset patch
  1258. # User Kostia Balytskyi <ikostia@fb.com>
  1259. # Date 1484740179 28800
  1260. #      Wed Jan 18 03:49:39 2017 -0800
  1261. # Node ID c129b8895f49ca07b2873f7b2d3f3aa4411e3c1c
  1262. # Parent  f3e27c577c8eed45191ff8f479e17b1291d82a42
  1263. shelve: test obs-shelve and issue4398
  1264.  
  1265. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  1266. --- a/tests/test-shelve.t
  1267. +++ b/tests/test-shelve.t
  1268. @@ -2419,3 +2419,57 @@ 140. Unshelve and conflicts with tracked
  1269.    $ cat f.orig
  1270.    g
  1271.    $ hg shelve --delete default
  1272. +
  1273. +Recreate some conflict again
  1274. +  $ cd ../obsrepo
  1275. +  $ hg up -C -r 'test^'
  1276. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1277. +  (leaving bookmark test)
  1278. +  $ echo y >> a/a
  1279. +  $ hg shelve
  1280. +  shelved as default
  1281. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1282. +  $ hg up test
  1283. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1284. +  (activating bookmark test)
  1285. +  $ hg bookmark
  1286. +   * test                      * (glob)
  1287. +  $ hg unshelve
  1288. +  unshelving change 'default'
  1289. +  rebasing shelved changes
  1290. +  rebasing * "changes to: second" (tip) (glob)
  1291. +  merging a/a
  1292. +  warning: conflicts while merging a/a! (edit, then use 'hg resolve --mark')
  1293. +  unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
  1294. +  [1]
  1295. +  $ hg bookmark
  1296. +     test                      * (glob)
  1297. +
  1298. +Test that resolving all conflicts in one direction (so that the rebase
  1299. +is a no-op), works (issue4398)
  1300. +
  1301. +  $ hg revert -a -r .
  1302. +  reverting a/a (glob)
  1303. +  $ hg resolve -m a/a
  1304. +  (no more unresolved files)
  1305. +  continue: hg unshelve --continue
  1306. +  $ hg unshelve -c
  1307. +  rebasing * "changes to: second" (tip) (glob)
  1308. +  note: rebase of * created no changes to commit (glob)
  1309. +  unshelve of 'default' complete
  1310. +  $ hg bookmark
  1311. +   * test                      * (glob)
  1312. +  $ hg diff
  1313. +  $ hg status
  1314. +  ? a/a.orig
  1315. +  ? foo/foo
  1316. +  $ hg summary | egrep "(bookmarks|commit)"
  1317. +  bookmarks: *test
  1318. +  commit: 2 unknown (clean)
  1319. +
  1320. +  $ hg shelve --delete --stat
  1321. +  abort: options '--delete' and '--stat' may not be used together
  1322. +  [255]
  1323. +  $ hg shelve --delete --name NAME
  1324. +  abort: options '--delete' and '--name' may not be used together
  1325. +  [255]
  1326.  
  1327. displaying [PATCH 20 of 30] shelve: test obs-shelve in interactive mode ...
  1328. Content-Type: text/plain; charset="us-ascii"
  1329. MIME-Version: 1.0
  1330. Content-Transfer-Encoding: 7bit
  1331. Subject: [PATCH 20 of 30] shelve: test obs-shelve in interactive mode
  1332. X-Mercurial-Node: ab1bc1e7cfe4995a3e8222acb82805ebe6f9c775
  1333. X-Mercurial-Series-Index: 20
  1334. X-Mercurial-Series-Total: 30
  1335. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  1336. Date: Thu, 19 Jan 2017 06:21:04 -0800
  1337. From: Kostia Balytskyi <ikostia@fb.com>
  1338. To: mercurial-devel@mercurial-scm.org
  1339.  
  1340. # HG changeset patch
  1341. # User Kostia Balytskyi <ikostia@fb.com>
  1342. # Date 1484740179 28800
  1343. #      Wed Jan 18 03:49:39 2017 -0800
  1344. # Node ID ab1bc1e7cfe4995a3e8222acb82805ebe6f9c775
  1345. # Parent  c129b8895f49ca07b2873f7b2d3f3aa4411e3c1c
  1346. shelve: test obs-shelve in interactive mode
  1347.  
  1348. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  1349. --- a/tests/test-shelve.t
  1350. +++ b/tests/test-shelve.t
  1351. @@ -2473,3 +2473,87 @@ is a no-op), works (issue4398)
  1352.    $ hg shelve --delete --name NAME
  1353.    abort: options '--delete' and '--name' may not be used together
  1354.    [255]
  1355. +
  1356. +Test interactive shelve
  1357. +  $ cat <<EOF >> $HGRCPATH
  1358. +  > [ui]
  1359. +  > interactive = true
  1360. +  > EOF
  1361. +  $ echo 'a' >> a/b
  1362. +  $ cat a/a >> a/b
  1363. +  $ echo 'x' >> a/b
  1364. +  $ mv a/b a/a
  1365. +  $ echo 'a' >> foo/foo
  1366. +  $ hg st
  1367. +  M a/a
  1368. +  ? a/a.orig
  1369. +  ? foo/foo
  1370. +  $ cat a/a
  1371. +  a
  1372. +  a
  1373. +  c
  1374. +  x
  1375. +  x
  1376. +  $ cat foo/foo
  1377. +  foo
  1378. +  a
  1379. +  $ hg shelve --interactive --config ui.interactive=false
  1380. +  abort: running non-interactively
  1381. +  [255]
  1382. +  $ hg shelve --interactive << EOF
  1383. +  > y
  1384. +  > y
  1385. +  > n
  1386. +  > EOF
  1387. +  diff --git a/a/a b/a/a
  1388. +  2 hunks, 2 lines changed
  1389. +  examine changes to 'a/a'? [Ynesfdaq?] y
  1390. +  
  1391. +  @@ -1,3 +1,4 @@
  1392. +  +a
  1393. +   a
  1394. +   c
  1395. +   x
  1396. +  record change 1/2 to 'a/a'? [Ynesfdaq?] y
  1397. +  
  1398. +  @@ -1,3 +2,4 @@
  1399. +   a
  1400. +   c
  1401. +   x
  1402. +  +x
  1403. +  record change 2/2 to 'a/a'? [Ynesfdaq?] n
  1404. +  
  1405. +  shelved as test
  1406. +  merging a/a
  1407. +  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
  1408. +  $ cat a/a
  1409. +  a
  1410. +  c
  1411. +  x
  1412. +  x
  1413. +  $ cat foo/foo
  1414. +  foo
  1415. +  a
  1416. +  $ hg st
  1417. +  M a/a
  1418. +  ? foo/foo
  1419. +  $ hg bookmark
  1420. +   * test                      * (glob)
  1421. +  $ hg log -r . -T "{desc|firstline}\n"
  1422. +  create conflict
  1423. +  $ hg unshelve
  1424. +  unshelving change 'test'
  1425. +  temporarily committing pending changes (restore with 'hg unshelve --abort')
  1426. +  rebasing shelved changes
  1427. +  rebasing * "changes to: create conflict" (glob)
  1428. +  merging a/a
  1429. +  $ hg bookmark
  1430. +   * test                      * (glob)
  1431. +  $ hg log -r . -T "{desc|firstline}\n"
  1432. +  create conflict
  1433. +  $ cat a/a
  1434. +  a
  1435. +  a
  1436. +  c
  1437. +  x
  1438. +  x
  1439.  
  1440. displaying [PATCH 21 of 30] shelve: test obs-shelve with --patch and --stat ...
  1441. Content-Type: text/plain; charset="us-ascii"
  1442. MIME-Version: 1.0
  1443. Content-Transfer-Encoding: 7bit
  1444. Subject: [PATCH 21 of 30] shelve: test obs-shelve with --patch and --stat
  1445. X-Mercurial-Node: 843e70d5edbecee461f894705cf3abc57a3b1c02
  1446. X-Mercurial-Series-Index: 21
  1447. X-Mercurial-Series-Total: 30
  1448. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  1449. Date: Thu, 19 Jan 2017 06:21:05 -0800
  1450. From: Kostia Balytskyi <ikostia@fb.com>
  1451. To: mercurial-devel@mercurial-scm.org
  1452.  
  1453. # HG changeset patch
  1454. # User Kostia Balytskyi <ikostia@fb.com>
  1455. # Date 1484740179 28800
  1456. #      Wed Jan 18 03:49:39 2017 -0800
  1457. # Node ID 843e70d5edbecee461f894705cf3abc57a3b1c02
  1458. # Parent  ab1bc1e7cfe4995a3e8222acb82805ebe6f9c775
  1459. shelve: test obs-shelve with --patch and --stat
  1460.  
  1461. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  1462. --- a/tests/test-shelve.t
  1463. +++ b/tests/test-shelve.t
  1464. @@ -2557,3 +2557,62 @@ Test interactive shelve
  1465.    c
  1466.    x
  1467.    x
  1468. +
  1469. +Shelve --patch and shelve --stat should work with a single valid shelfname
  1470. +  $ hg up --clean .
  1471. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1472. +  (leaving bookmark test)
  1473. +  $ hg shelve --list
  1474. +  $ echo 'patch a' > shelf-patch-a
  1475. +  $ hg add shelf-patch-a
  1476. +  $ hg shelve
  1477. +  shelved as default
  1478. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1479. +  $ echo 'patch b' > shelf-patch-b
  1480. +  $ hg add shelf-patch-b
  1481. +  $ hg shelve
  1482. +  shelved as default-01
  1483. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1484. +  $ hg shelve --patch default default-01
  1485. +  default-01      (1s ago)    changes to: create conflict
  1486. +  
  1487. +  diff --git a/shelf-patch-b b/shelf-patch-b
  1488. +  new file mode 100644
  1489. +  --- /dev/null
  1490. +  +++ b/shelf-patch-b
  1491. +  @@ -0,0 +1,1 @@
  1492. +  +patch b
  1493. +  default         (1s ago)    changes to: create conflict
  1494. +  
  1495. +  diff --git a/shelf-patch-a b/shelf-patch-a
  1496. +  new file mode 100644
  1497. +  --- /dev/null
  1498. +  +++ b/shelf-patch-a
  1499. +  @@ -0,0 +1,1 @@
  1500. +  +patch a
  1501. +  $ hg shelve --stat default default-01
  1502. +  default-01      (1s ago)    changes to: create conflict
  1503. +   shelf-patch-b |  1 +
  1504. +   1 files changed, 1 insertions(+), 0 deletions(-)
  1505. +  default         (1s ago)    changes to: create conflict
  1506. +   shelf-patch-a |  1 +
  1507. +   1 files changed, 1 insertions(+), 0 deletions(-)
  1508. +  $ hg shelve --patch default
  1509. +  default         (*)* changes to: create conflict (glob)
  1510. +  
  1511. +  diff --git a/shelf-patch-a b/shelf-patch-a
  1512. +  new file mode 100644
  1513. +  --- /dev/null
  1514. +  +++ b/shelf-patch-a
  1515. +  @@ -0,0 +1,1 @@
  1516. +  +patch a
  1517. +  $ hg shelve --stat default
  1518. +  default         (*)* changes to: create conflict (glob)
  1519. +   shelf-patch-a |  1 +
  1520. +   1 files changed, 1 insertions(+), 0 deletions(-)
  1521. +  $ hg shelve --patch nonexistentshelf
  1522. +  abort: cannot find shelf nonexistentshelf
  1523. +  [255]
  1524. +  $ hg shelve --stat nonexistentshelf
  1525. +  abort: cannot find shelf nonexistentshelf
  1526. +  [255]
  1527.  
  1528. displaying [PATCH 22 of 30] shelve: test obs-shelve's hadnling of pending commits visibility ...
  1529. Content-Type: text/plain; charset="us-ascii"
  1530. MIME-Version: 1.0
  1531. Content-Transfer-Encoding: 7bit
  1532. Subject: [PATCH 22 of 30] shelve: test obs-shelve's hadnling of pending
  1533.  commits visibility
  1534. X-Mercurial-Node: 108aaaf218d8564fc023739c48f616b6d9a5b798
  1535. X-Mercurial-Series-Index: 22
  1536. X-Mercurial-Series-Total: 30
  1537. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  1538. Date: Thu, 19 Jan 2017 06:21:06 -0800
  1539. From: Kostia Balytskyi <ikostia@fb.com>
  1540. To: mercurial-devel@mercurial-scm.org
  1541.  
  1542. # HG changeset patch
  1543. # User Kostia Balytskyi <ikostia@fb.com>
  1544. # Date 1484740179 28800
  1545. #      Wed Jan 18 03:49:39 2017 -0800
  1546. # Node ID 108aaaf218d8564fc023739c48f616b6d9a5b798
  1547. # Parent  843e70d5edbecee461f894705cf3abc57a3b1c02
  1548. shelve: test obs-shelve's hadnling of pending commits visibility
  1549.  
  1550. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  1551. --- a/tests/test-shelve.t
  1552. +++ b/tests/test-shelve.t
  1553. @@ -2616,3 +2616,123 @@ Shelve --patch and shelve --stat should
  1554.    $ hg shelve --stat nonexistentshelf
  1555.    abort: cannot find shelf nonexistentshelf
  1556.    [255]
  1557. +
  1558. +Test visibility of in-memory changes inside transaction to external hook
  1559. +------------------------------------------------------------------------
  1560. +  $ echo xxxx >> x
  1561. +  $ hg commit -m "changes to invoke rebase"
  1562. +  $ hg bookmark unshelvedest
  1563. +
  1564. +  $ cat > $TESTTMP/checkvisibility.sh <<EOF
  1565. +  > echo "==== \$1:"
  1566. +  > hg parents --template "VISIBLE {node|short}\n"
  1567. +  > # test that pending changes are hidden
  1568. +  > unset HG_PENDING
  1569. +  > hg parents --template "ACTUAL  {node|short}\n"
  1570. +  > echo "===="
  1571. +  > EOF
  1572. +
  1573. +  $ cat >> .hg/hgrc <<EOF
  1574. +  > [defaults]
  1575. +  > # to fix hash id of temporary revisions
  1576. +  > unshelve = --date '0 0'
  1577. +  > EOF
  1578. +
  1579. +"hg unshelve"implies steps below:
  1580. +(1) commit changes in the working directory
  1581. +(2) note shelved revision
  1582. +(3) rebase: merge shelved revision into temporary wc changes
  1583. +(4) rebase: commit merged revision
  1584. +(5) rebase: update to a new commit
  1585. +(6) update to original working copy parent
  1586. +
  1587. +== test visibility to external preupdate hook
  1588. +
  1589. +  $ cat >> .hg/hgrc <<EOF
  1590. +  > [hooks]
  1591. +  > preupdate.visibility = sh $TESTTMP/checkvisibility.sh preupdate
  1592. +  > EOF
  1593. +
  1594. +  $ echo nnnn >> n
  1595. +
  1596. +  $ sh $TESTTMP/checkvisibility.sh before-unshelving
  1597. +  ==== before-unshelving:
  1598. +  VISIBLE f77bf047d4c5
  1599. +  ACTUAL  f77bf047d4c5
  1600. +  ====
  1601. +
  1602. +  $ hg unshelve --keep default
  1603. +  temporarily committing pending changes (restore with 'hg unshelve --abort')
  1604. +  rebasing shelved changes
  1605. +  rebasing *206bf5d4f922 "changes to: create conflict" (glob)
  1606. +  ==== preupdate:
  1607. +  VISIBLE (?!f77bf047d4c5).* (re)
  1608. +  ACTUAL  f77bf047d4c5
  1609. +  ====
  1610. +  ==== preupdate:
  1611. +  VISIBLE (?!f77bf047d4c5).* (re)
  1612. +  ACTUAL  f77bf047d4c5
  1613. +  ====
  1614. +  ==== preupdate:
  1615. +  VISIBLE (?!f77bf047d4c5).* (re)
  1616. +  ACTUAL  f77bf047d4c5
  1617. +  ====
  1618. +
  1619. +  $ cat >> .hg/hgrc <<EOF
  1620. +  > [hooks]
  1621. +  > preupdate.visibility =
  1622. +  > EOF
  1623. +
  1624. +  $ sh $TESTTMP/checkvisibility.sh after-unshelving
  1625. +  ==== after-unshelving:
  1626. +  VISIBLE f77bf047d4c5
  1627. +  ACTUAL  f77bf047d4c5
  1628. +  ====
  1629. +
  1630. +== test visibility to external update hook
  1631. +
  1632. +  $ hg update -q -C unshelvedest
  1633. +
  1634. +  $ cat >> .hg/hgrc <<EOF
  1635. +  > [hooks]
  1636. +  > update.visibility = sh $TESTTMP/checkvisibility.sh update
  1637. +  > EOF
  1638. +
  1639. +  $ echo nnnn >> n
  1640. +
  1641. +  $ sh $TESTTMP/checkvisibility.sh before-unshelving
  1642. +  ==== before-unshelving:
  1643. +  VISIBLE f77bf047d4c5
  1644. +  ACTUAL  f77bf047d4c5
  1645. +  ====
  1646. +
  1647. +  $ hg unshelve --keep default
  1648. +  temporarily committing pending changes (restore with 'hg unshelve --abort')
  1649. +  rebasing shelved changes
  1650. +  rebasing *:206bf5d4f922 "changes to: create conflict" (glob)
  1651. +  ==== update:
  1652. +  VISIBLE f3a8cb815d40
  1653. +  VISIBLE 206bf5d4f922
  1654. +  ACTUAL  f77bf047d4c5
  1655. +  ====
  1656. +  ==== update:
  1657. +  VISIBLE f3a8cb815d40
  1658. +  ACTUAL  f77bf047d4c5
  1659. +  ====
  1660. +  ==== update:
  1661. +  VISIBLE f77bf047d4c5
  1662. +  ACTUAL  f77bf047d4c5
  1663. +  ====
  1664. +
  1665. +  $ cat >> .hg/hgrc <<EOF
  1666. +  > [hooks]
  1667. +  > update.visibility =
  1668. +  > EOF
  1669. +
  1670. +  $ sh $TESTTMP/checkvisibility.sh after-unshelving
  1671. +  ==== after-unshelving:
  1672. +  VISIBLE f77bf047d4c5
  1673. +  ACTUAL  f77bf047d4c5
  1674. +  ====
  1675. +  $ hg bookmark -d unshelvedest
  1676. +  $ cd ..
  1677.  
  1678. displaying [PATCH 23 of 30] shelve: test obs-shelve with ui.origbackuppath config ...
  1679. Content-Type: text/plain; charset="us-ascii"
  1680. MIME-Version: 1.0
  1681. Content-Transfer-Encoding: 7bit
  1682. Subject: [PATCH 23 of 30] shelve: test obs-shelve with ui.origbackuppath config
  1683. X-Mercurial-Node: 9d1632447d6d36b96c06183c83c86cc51ce64270
  1684. X-Mercurial-Series-Index: 23
  1685. X-Mercurial-Series-Total: 30
  1686. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  1687. Date: Thu, 19 Jan 2017 06:21:07 -0800
  1688. From: Kostia Balytskyi <ikostia@fb.com>
  1689. To: mercurial-devel@mercurial-scm.org
  1690.  
  1691. # HG changeset patch
  1692. # User Kostia Balytskyi <ikostia@fb.com>
  1693. # Date 1484740179 28800
  1694. #      Wed Jan 18 03:49:39 2017 -0800
  1695. # Node ID 9d1632447d6d36b96c06183c83c86cc51ce64270
  1696. # Parent  108aaaf218d8564fc023739c48f616b6d9a5b798
  1697. shelve: test obs-shelve with ui.origbackuppath config
  1698.  
  1699. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  1700. --- a/tests/test-shelve.t
  1701. +++ b/tests/test-shelve.t
  1702. @@ -2736,3 +2736,25 @@ Test visibility of in-memory changes ins
  1703.    ====
  1704.    $ hg bookmark -d unshelvedest
  1705.    $ cd ..
  1706. +
  1707. +Test .orig files go where the user wants them to
  1708. +---------------------------------------------------------------
  1709. +  $ hg init obssh-salvage
  1710. +  $ cd obssh-salvage
  1711. +  $ cat <<EOF >> .hg/hgrc
  1712. +  > [experimental]
  1713. +  > evolution=createmarkers
  1714. +  > obsshelve=True
  1715. +  > EOF
  1716. +  $ echo 'content' > root
  1717. +  $ hg commit -A -m 'root' -q
  1718. +  $ echo '' > root
  1719. +  $ hg shelve -q
  1720. +  $ echo 'contADDent' > root
  1721. +  $ hg unshelve -q --config 'ui.origbackuppath=.hg/origbackups'
  1722. +  warning: conflicts while merging root! (edit, then use 'hg resolve --mark')
  1723. +  unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
  1724. +  [1]
  1725. +  $ ls .hg/origbackups
  1726. +  root.orig
  1727. +  $ rm -rf .hg/origbackups
  1728.  
  1729. displaying [PATCH 24 of 30] shelve: test that unshelve --abort always works with obs-shelve ...
  1730. Content-Type: text/plain; charset="us-ascii"
  1731. MIME-Version: 1.0
  1732. Content-Transfer-Encoding: 7bit
  1733. Subject: [PATCH 24 of 30] shelve: test that unshelve --abort always works with
  1734.  obs-shelve
  1735. X-Mercurial-Node: e20e0495e105aec23e2281df27d42df0dcc24362
  1736. X-Mercurial-Series-Index: 24
  1737. X-Mercurial-Series-Total: 30
  1738. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  1739. Date: Thu, 19 Jan 2017 06:21:08 -0800
  1740. From: Kostia Balytskyi <ikostia@fb.com>
  1741. To: mercurial-devel@mercurial-scm.org
  1742.  
  1743. # HG changeset patch
  1744. # User Kostia Balytskyi <ikostia@fb.com>
  1745. # Date 1484740179 28800
  1746. #      Wed Jan 18 03:49:39 2017 -0800
  1747. # Node ID e20e0495e105aec23e2281df27d42df0dcc24362
  1748. # Parent  9d1632447d6d36b96c06183c83c86cc51ce64270
  1749. shelve: test that unshelve --abort always works with obs-shelve
  1750.  
  1751. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  1752. --- a/tests/test-shelve.t
  1753. +++ b/tests/test-shelve.t
  1754. @@ -2758,3 +2758,32 @@ Test .orig files go where the user wants
  1755.    $ ls .hg/origbackups
  1756.    root.orig
  1757.    $ rm -rf .hg/origbackups
  1758. +
  1759. +Test Abort unshelve always gets user out of the unshelved state
  1760. +---------------------------------------------------------------
  1761. +Wreak havoc on the unshelve process
  1762. +  $ rm .hg/unshelverebasestate
  1763. +  $ hg unshelve --abort
  1764. +  unshelve of 'default' aborted
  1765. +  abort: (No such file or directory|The system cannot find the file specified) (re)
  1766. +  [255]
  1767. +Can the user leave the current state?
  1768. +  $ hg up -C .
  1769. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1770. +
  1771. +Try again but with a corrupted shelve state file
  1772. +  $ hg up -r 0 -q
  1773. +  $ echo '' > root
  1774. +  $ hg shelve -q
  1775. +  $ echo 'contADDent' > root
  1776. +  $ hg unshelve -q
  1777. +  warning: conflicts while merging root! (edit, then use 'hg resolve --mark')
  1778. +  unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
  1779. +  [1]
  1780. +  $ sed 's/ae8c668541e8/123456789012/' .hg/shelvedstate > ../corrupt-shelvedstate
  1781. +  $ mv ../corrupt-shelvedstate .hg/histedit-state
  1782. +  $ hg unshelve --abort 2>&1 | grep 'rebase aborted'
  1783. +  rebase aborted
  1784. +  $ hg up -C .
  1785. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1786. +  $ cd ..
  1787.  
  1788. displaying [PATCH 25 of 30] shelve: test obs-shelve with issue4940 ...
  1789. Content-Type: text/plain; charset="us-ascii"
  1790. MIME-Version: 1.0
  1791. Content-Transfer-Encoding: 7bit
  1792. Subject: [PATCH 25 of 30] shelve: test obs-shelve with issue4940
  1793. X-Mercurial-Node: 2e35896c139c40bcfd597a8fe38592362e1365de
  1794. X-Mercurial-Series-Index: 25
  1795. X-Mercurial-Series-Total: 30
  1796. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  1797. Date: Thu, 19 Jan 2017 06:21:09 -0800
  1798. From: Kostia Balytskyi <ikostia@fb.com>
  1799. To: mercurial-devel@mercurial-scm.org
  1800.  
  1801. # HG changeset patch
  1802. # User Kostia Balytskyi <ikostia@fb.com>
  1803. # Date 1484740179 28800
  1804. #      Wed Jan 18 03:49:39 2017 -0800
  1805. # Node ID 2e35896c139c40bcfd597a8fe38592362e1365de
  1806. # Parent  e20e0495e105aec23e2281df27d42df0dcc24362
  1807. shelve: test obs-shelve with issue4940
  1808.  
  1809. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  1810. --- a/tests/test-shelve.t
  1811. +++ b/tests/test-shelve.t
  1812. @@ -2787,3 +2787,40 @@ Try again but with a corrupted shelve st
  1813.    $ hg up -C .
  1814.    1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1815.    $ cd ..
  1816. +
  1817. +Keep active bookmark while (un)shelving even on shared repo (issue4940)
  1818. +-----------------------------------------------------------------------
  1819. +  $ cat <<EOF >> $HGRCPATH
  1820. +  > [extensions]
  1821. +  > share =
  1822. +  > [experimnetal]
  1823. +  > evolution=createmarkers
  1824. +  > EOF
  1825. +  $ hg bookmarks -R obsrepo
  1826. +     test                      *:33f7f61e6c5e (glob)
  1827. +  $ hg share -B obsrepo obsshare
  1828. +  updating working directory
  1829. +  6 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1830. +  $ cd obsshare
  1831. +
  1832. +  $ hg bookmarks
  1833. +     test                      *:33f7f61e6c5e (glob)
  1834. +  $ hg bookmarks foo
  1835. +  $ hg bookmarks
  1836. +   \* foo                       *:f77bf047d4c5 (glob)
  1837. +     test                      *:33f7f61e6c5e (glob)
  1838. +  $ echo x >> x
  1839. +  $ hg shelve
  1840. +  shelved as foo
  1841. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  1842. +  $ hg bookmarks
  1843. +   \* foo                       *:f77bf047d4c5 (glob)
  1844. +     test                      *:33f7f61e6c5e (glob)
  1845. +
  1846. +  $ hg unshelve
  1847. +  unshelving change 'foo'
  1848. +  $ hg bookmarks
  1849. +   \* foo                       *:f77bf047d4c5 (glob)
  1850. +     test                      *:33f7f61e6c5e (glob)
  1851. +
  1852. +  $ cd ..
  1853.  
  1854. displaying [PATCH 26 of 30] shelve: test obs-shelve with unknown files ...
  1855. Content-Type: text/plain; charset="us-ascii"
  1856. MIME-Version: 1.0
  1857. Content-Transfer-Encoding: 7bit
  1858. Subject: [PATCH 26 of 30] shelve: test obs-shelve with unknown files
  1859. X-Mercurial-Node: 0247651c1cd124efa6ded4d86800fd44af4dd43c
  1860. X-Mercurial-Series-Index: 26
  1861. X-Mercurial-Series-Total: 30
  1862. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  1863. Date: Thu, 19 Jan 2017 06:21:10 -0800
  1864. From: Kostia Balytskyi <ikostia@fb.com>
  1865. To: mercurial-devel@mercurial-scm.org
  1866.  
  1867. # HG changeset patch
  1868. # User Kostia Balytskyi <ikostia@fb.com>
  1869. # Date 1484740179 28800
  1870. #      Wed Jan 18 03:49:39 2017 -0800
  1871. # Node ID 0247651c1cd124efa6ded4d86800fd44af4dd43c
  1872. # Parent  2e35896c139c40bcfd597a8fe38592362e1365de
  1873. shelve: test obs-shelve with unknown files
  1874.  
  1875. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  1876. --- a/tests/test-shelve.t
  1877. +++ b/tests/test-shelve.t
  1878. @@ -2824,3 +2824,71 @@ Keep active bookmark while (un)shelving
  1879.       test                      *:33f7f61e6c5e (glob)
  1880.  
  1881.    $ cd ..
  1882. +
  1883. +Shelve and unshelve unknown files. For the purposes of unshelve, a shelved
  1884. +unknown file is the same as a shelved added file, except that it will be in
  1885. +unknown state after unshelve if and only if it was either absent or unknown
  1886. +before the unshelve operation.
  1887. +  $ hg init obssh-unknowns
  1888. +  $ cd obssh-unknowns
  1889. +  $ cat <<EOF >> .hg/hgrc
  1890. +  > [experimental]
  1891. +  > evolution=createmarkers
  1892. +  > obsshelve=True
  1893. +  > EOF
  1894. +
  1895. +The simplest case is if I simply have an unknown file that I shelve and unshelve
  1896. +  $ echo unknown > unknown
  1897. +  $ hg status
  1898. +  ? unknown
  1899. +  $ hg shelve --unknown
  1900. +  shelved as default
  1901. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1902. +  $ hg status
  1903. +  $ hg unshelve
  1904. +  unshelving change 'default'
  1905. +  $ hg status
  1906. +  ? unknown
  1907. +  $ rm unknown
  1908. +
  1909. +If I shelve, add the file, and unshelve, does it stay added?
  1910. +  $ echo unknown > unknown
  1911. +  $ hg shelve -u
  1912. +  shelved as default
  1913. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1914. +  $ hg status
  1915. +  $ touch unknown
  1916. +  $ hg add unknown
  1917. +  $ hg status
  1918. +  A unknown
  1919. +  $ hg unshelve
  1920. +  unshelving change 'default'
  1921. +  temporarily committing pending changes (restore with 'hg unshelve --abort')
  1922. +  rebasing shelved changes
  1923. +  rebasing 0:098df96e7410 "(changes in empty repository)"
  1924. +  merging unknown
  1925. +  $ hg status
  1926. +  A unknown
  1927. +  $ hg forget unknown
  1928. +  $ rm unknown
  1929. +
  1930. +And if I shelve, commit, then unshelve, does it become modified?
  1931. +  $ echo unknown > unknown
  1932. +  $ hg shelve -u
  1933. +  shelved as default
  1934. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  1935. +  $ hg status
  1936. +  $ touch unknown
  1937. +  $ hg add unknown
  1938. +  $ hg commit -qm "Add unknown"
  1939. +  $ hg status
  1940. +  $ hg unshelve
  1941. +  unshelving change 'default'
  1942. +  rebasing shelved changes
  1943. +  rebasing 0:098df96e7410 "(changes in empty repository)"
  1944. +  merging unknown
  1945. +  $ hg status
  1946. +  M unknown
  1947. +  $ hg remove --force unknown
  1948. +  $ hg commit -qm "Remove unknown"
  1949. +  $ cd ..
  1950.  
  1951. displaying [PATCH 27 of 30] shelve: test obs-shelve's behavior with branches ...
  1952. Content-Type: text/plain; charset="us-ascii"
  1953. MIME-Version: 1.0
  1954. Content-Transfer-Encoding: 7bit
  1955. Subject: [PATCH 27 of 30] shelve: test obs-shelve's behavior with branches
  1956. X-Mercurial-Node: 15f4ba4fca83d4eda2ca8dc93cb087a887449b97
  1957. X-Mercurial-Series-Index: 27
  1958. X-Mercurial-Series-Total: 30
  1959. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  1960. Date: Thu, 19 Jan 2017 06:21:11 -0800
  1961. From: Kostia Balytskyi <ikostia@fb.com>
  1962. To: mercurial-devel@mercurial-scm.org
  1963.  
  1964. # HG changeset patch
  1965. # User Kostia Balytskyi <ikostia@fb.com>
  1966. # Date 1484740179 28800
  1967. #      Wed Jan 18 03:49:39 2017 -0800
  1968. # Node ID 15f4ba4fca83d4eda2ca8dc93cb087a887449b97
  1969. # Parent  0247651c1cd124efa6ded4d86800fd44af4dd43c
  1970. shelve: test obs-shelve's behavior with branches
  1971.  
  1972. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  1973. --- a/tests/test-shelve.t
  1974. +++ b/tests/test-shelve.t
  1975. @@ -2892,3 +2892,284 @@ And if I shelve, commit, then unshelve,
  1976.    $ hg remove --force unknown
  1977.    $ hg commit -qm "Remove unknown"
  1978.    $ cd ..
  1979. +
  1980. +We expects that non-bare shelve keeps newly created branch in
  1981. +working directory.
  1982. +  $ hg init obs-shelve-preserve-new-branch
  1983. +  $ cd obs-shelve-preserve-new-branch
  1984. +  $ cat <<EOF >> .hg/hgrc
  1985. +  > [experimental]
  1986. +  > evolution=createmarkers
  1987. +  > obsshelve=True
  1988. +  > EOF
  1989. +  $ echo "a" >> a
  1990. +  $ hg add a
  1991. +  $ echo "b" >> b
  1992. +  $ hg add b
  1993. +  $ hg commit -m "ab"
  1994. +  $ echo "aa" >> a
  1995. +  $ echo "bb" >> b
  1996. +  $ hg branch new-branch
  1997. +  marked working directory as branch new-branch
  1998. +  (branches are permanent and global, did you want a bookmark?)
  1999. +  $ hg status
  2000. +  M a
  2001. +  M b
  2002. +  $ hg branch
  2003. +  new-branch
  2004. +  $ hg shelve a
  2005. +  shelved as default
  2006. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  2007. +  $ hg branch
  2008. +  new-branch
  2009. +  $ hg status
  2010. +  M b
  2011. +  $ touch "c" >> c
  2012. +  $ hg add c
  2013. +  $ hg status
  2014. +  M b
  2015. +  A c
  2016. +  $ hg shelve --exclude c
  2017. +  shelved as default-01
  2018. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  2019. +  $ hg branch
  2020. +  new-branch
  2021. +  $ hg status
  2022. +  A c
  2023. +  $ hg shelve --include c
  2024. +  shelved as default-02
  2025. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  2026. +  $ hg branch
  2027. +  new-branch
  2028. +  $ hg status
  2029. +  $ echo "d" >> d
  2030. +  $ hg add d
  2031. +  $ hg status
  2032. +  A d
  2033. +
  2034. +We expect that bare-shelve will not keep branch in current working directory.
  2035. +
  2036. +  $ hg shelve
  2037. +  shelved as default-03
  2038. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  2039. +  $ hg branch
  2040. +  default
  2041. +  $ cd ..
  2042. +
  2043. +When i shelve commit on newly created branch i expect
  2044. +that after unshelve newly created branch will be preserved.
  2045. +  $ hg init obs-shelve_on_new_branch_simple
  2046. +  $ cd obs-shelve_on_new_branch_simple
  2047. +  $ cat <<EOF >> .hg/hgrc
  2048. +  > [experimental]
  2049. +  > evolution=createmarkers
  2050. +  > obsshelve=True
  2051. +  > EOF
  2052. +  $ echo "aaa" >> a
  2053. +  $ hg commit -A -m "a"
  2054. +  adding a
  2055. +  $ hg branch
  2056. +  default
  2057. +  $ hg branch test
  2058. +  marked working directory as branch test
  2059. +  (branches are permanent and global, did you want a bookmark?)
  2060. +  $ echo "bbb" >> a
  2061. +  $ hg status
  2062. +  M a
  2063. +  $ hg shelve
  2064. +  shelved as default
  2065. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  2066. +  $ hg branch
  2067. +  default
  2068. +  $ echo "bbb" >> b
  2069. +  $ hg status
  2070. +  ? b
  2071. +  $ hg unshelve
  2072. +  unshelving change 'default'
  2073. +  marked working directory as branch test
  2074. +  $ hg status
  2075. +  M a
  2076. +  ? b
  2077. +  $ hg branch
  2078. +  test
  2079. +  $ cd ..
  2080. +
  2081. +When i shelve commit on newly created branch, make
  2082. +some changes, unshelve it and running into merge
  2083. +conflicts i expect that after fixing them and
  2084. +running unshelve --continue newly created branch
  2085. +will be preserved.
  2086. +  $ hg init obs-shelve_on_new_branch_conflict
  2087. +  $ cd obs-shelve_on_new_branch_conflict
  2088. +  $ cat <<EOF >> .hg/hgrc
  2089. +  > [experimental]
  2090. +  > evolution=createmarkers
  2091. +  > obsshelve=True
  2092. +  > EOF
  2093. +  $ echo "aaa" >> a
  2094. +  $ hg commit -A -m "a"
  2095. +  adding a
  2096. +  $ hg branch
  2097. +  default
  2098. +  $ hg branch test
  2099. +  marked working directory as branch test
  2100. +  (branches are permanent and global, did you want a bookmark?)
  2101. +  $ echo "bbb" >> a
  2102. +  $ hg status
  2103. +  M a
  2104. +  $ hg shelve
  2105. +  shelved as default
  2106. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  2107. +  $ hg branch
  2108. +  default
  2109. +  $ echo "ccc" >> a
  2110. +  $ hg status
  2111. +  M a
  2112. +  $ hg unshelve
  2113. +  unshelving change 'default'
  2114. +  temporarily committing pending changes (restore with 'hg unshelve --abort')
  2115. +  rebasing shelved changes
  2116. +  rebasing 1:425c97ef07f3 "changes to: a"
  2117. +  merging a
  2118. +  warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
  2119. +  unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
  2120. +  [1]
  2121. +  $ echo "aaabbbccc" > a
  2122. +  $ rm a.orig
  2123. +  $ hg resolve --mark a
  2124. +  (no more unresolved files)
  2125. +  continue: hg unshelve --continue
  2126. +  $ hg unshelve --continue
  2127. +  rebasing 1:425c97ef07f3 "changes to: a"
  2128. +  marked working directory as branch test
  2129. +  unshelve of 'default' complete
  2130. +  $ cat a
  2131. +  aaabbbccc
  2132. +  $ hg status
  2133. +  M a
  2134. +  $ hg branch
  2135. +  test
  2136. +  $ hg commit -m "test-commit"
  2137. +
  2138. +When i shelve on test branch, update to default branch
  2139. +and unshelve i expect that it will not preserve previous
  2140. +test branch.
  2141. +  $ echo "xxx" > b
  2142. +  $ hg add b
  2143. +  $ hg shelve
  2144. +  shelved as test
  2145. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  2146. +  $ hg update -r default
  2147. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  2148. +  $ hg unshelve
  2149. +  unshelving change 'test'
  2150. +  rebasing shelved changes
  2151. +  rebasing *:357525f34729 "changes to: test-commit"* (glob)
  2152. +  $ hg status
  2153. +  A b
  2154. +  $ hg branch
  2155. +  default
  2156. +  $ cd ..
  2157. +
  2158. +When i unshelve resulting in merge conflicts and makes saved
  2159. +file shelvedstate looks like in previous versions in
  2160. +mercurial(without restore branch information in 7th line) i
  2161. +expect that after resolving conflicts and successfully
  2162. +running 'shelve --continue' the branch information won't be
  2163. +restored and branch will be unchanged.
  2164. +
  2165. +shelve on new branch, conflict with previous shelvedstate
  2166. +  $ hg init obs-conflict
  2167. +  $ cd obs-conflict
  2168. +  $ cat <<EOF >> .hg/hgrc
  2169. +  > [experimental]
  2170. +  > evolution=createmarkers
  2171. +  > obsshelve=True
  2172. +  > EOF
  2173. +  $ echo "aaa" >> a
  2174. +  $ hg commit -A -m "a"
  2175. +  adding a
  2176. +  $ hg branch
  2177. +  default
  2178. +  $ hg branch test
  2179. +  marked working directory as branch test
  2180. +  (branches are permanent and global, did you want a bookmark?)
  2181. +  $ echo "bbb" >> a
  2182. +  $ hg status
  2183. +  M a
  2184. +  $ hg shelve
  2185. +  shelved as default
  2186. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  2187. +  $ hg branch
  2188. +  default
  2189. +  $ echo "ccc" >> a
  2190. +  $ hg status
  2191. +  M a
  2192. +  $ hg unshelve
  2193. +  unshelving change 'default'
  2194. +  temporarily committing pending changes (restore with 'hg unshelve --abort')
  2195. +  rebasing shelved changes
  2196. +  rebasing 1:425c97ef07f3 "changes to: a"
  2197. +  merging a
  2198. +  warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
  2199. +  unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
  2200. +  [1]
  2201. +
  2202. +Removing restore branch information from shelvedstate file(making it looks like
  2203. +in previous versions) and running unshelve --continue
  2204. +  $ sed '7s/.*//' .hg/shelvedstate > .hg/shelvedstate.nobranchinfo
  2205. +  $ mv .hg/shelvedstate.nobranchinfo .hg/shelvedstate
  2206. +  $ echo "aaabbbccc" > a
  2207. +  $ rm a.orig
  2208. +  $ hg resolve --mark a
  2209. +  (no more unresolved files)
  2210. +  continue: hg unshelve --continue
  2211. +  $ hg unshelve --continue
  2212. +  rebasing 1:425c97ef07f3 "changes to: a"
  2213. +  unshelve of 'default' complete
  2214. +  $ cat a
  2215. +  aaabbbccc
  2216. +  $ hg status
  2217. +  M a
  2218. +  $ hg branch
  2219. +  default
  2220. +  $ cd ..
  2221. +
  2222. +On non bare shelve the branch information shouldn't be restored
  2223. +  $ hg init obssh-bare_shelve_on_new_branch
  2224. +  $ cd obssh-bare_shelve_on_new_branch
  2225. +  $ cat <<EOF >> .hg/hgrc
  2226. +  > [experimental]
  2227. +  > evolution=createmarkers
  2228. +  > obsshelve=True
  2229. +  > EOF
  2230. +  $ echo "aaa" >> a
  2231. +  $ hg commit -A -m "a"
  2232. +  adding a
  2233. +  $ hg branch
  2234. +  default
  2235. +  $ hg branch test
  2236. +  marked working directory as branch test
  2237. +  (branches are permanent and global, did you want a bookmark?)
  2238. +  $ echo "bbb" >> a
  2239. +  $ hg status
  2240. +  M a
  2241. +  $ hg shelve a
  2242. +  shelved as default
  2243. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  2244. +  $ hg branch
  2245. +  test
  2246. +  $ hg branch default
  2247. +  marked working directory as branch default
  2248. +  (branches are permanent and global, did you want a bookmark?)
  2249. +  $ echo "bbb" >> b
  2250. +  $ hg status
  2251. +  ? b
  2252. +  $ hg unshelve
  2253. +  unshelving change 'default'
  2254. +  $ hg status
  2255. +  M a
  2256. +  ? b
  2257. +  $ hg branch
  2258. +  default
  2259. +  $ cd ..
  2260.  
  2261. displaying [PATCH 28 of 30] shelve: test obs-shelve with corrupted shelvestate ...
  2262. Content-Type: text/plain; charset="us-ascii"
  2263. MIME-Version: 1.0
  2264. Content-Transfer-Encoding: 7bit
  2265. Subject: [PATCH 28 of 30] shelve: test obs-shelve with corrupted shelvestate
  2266. X-Mercurial-Node: 07070c6b7e73a8783ea17581736ca2b20937e2c6
  2267. X-Mercurial-Series-Index: 28
  2268. X-Mercurial-Series-Total: 30
  2269. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  2270. Date: Thu, 19 Jan 2017 06:21:12 -0800
  2271. From: Kostia Balytskyi <ikostia@fb.com>
  2272. To: mercurial-devel@mercurial-scm.org
  2273.  
  2274. # HG changeset patch
  2275. # User Kostia Balytskyi <ikostia@fb.com>
  2276. # Date 1484740179 28800
  2277. #      Wed Jan 18 03:49:39 2017 -0800
  2278. # Node ID 07070c6b7e73a8783ea17581736ca2b20937e2c6
  2279. # Parent  15f4ba4fca83d4eda2ca8dc93cb087a887449b97
  2280. shelve: test obs-shelve with corrupted shelvestate
  2281.  
  2282. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  2283. --- a/tests/test-shelve.t
  2284. +++ b/tests/test-shelve.t
  2285. @@ -3173,3 +3173,44 @@ On non bare shelve the branch informatio
  2286.    $ hg branch
  2287.    default
  2288.    $ cd ..
  2289. +
  2290. +Prepare unshelve with a corrupted shelvedstate
  2291. +  $ hg init obssh-r1 && cd obssh-r1
  2292. +  $ cat <<EOF >> .hg/hgrc
  2293. +  > [experimental]
  2294. +  > evolution=createmarkers
  2295. +  > obsshelve=True
  2296. +  > EOF
  2297. +  $ echo text1 > file && hg add file
  2298. +  $ hg shelve
  2299. +  shelved as default
  2300. +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  2301. +  $ echo text2 > file && hg ci -Am text1
  2302. +  adding file
  2303. +  $ hg unshelve
  2304. +  unshelving change 'default'
  2305. +  rebasing shelved changes
  2306. +  rebasing 0:396ea74229f9 "(changes in empty repository)"
  2307. +  merging file
  2308. +  warning: conflicts while merging file! (edit, then use 'hg resolve --mark')
  2309. +  unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
  2310. +  [1]
  2311. +  $ echo somethingsomething > .hg/shelvedstate
  2312. +
  2313. +Unshelve --continue fails with appropriate message if shelvedstate is corrupted
  2314. +  $ hg unshelve --continue
  2315. +  abort: corrupted shelved state file
  2316. +  (please run hg unshelve --abort to abort unshelve operation)
  2317. +  [255]
  2318. +
  2319. +Unshelve --abort works with a corrupted shelvedstate
  2320. +  $ hg unshelve --abort
  2321. +  could not read shelved state file, your working copy may be in an unexpected state
  2322. +  please update to some commit
  2323. +
  2324. +Unshelve --abort fails with appropriate message if there's no unshelve in
  2325. +progress
  2326. +  $ hg unshelve --abort
  2327. +  abort: no unshelve in progress
  2328. +  [255]
  2329. +  $ cd ..
  2330.  
  2331. displaying [PATCH 29 of 30] shelve: test that obs-shelve's --continue respects --keep ...
  2332. Content-Type: text/plain; charset="us-ascii"
  2333. MIME-Version: 1.0
  2334. Content-Transfer-Encoding: 7bit
  2335. Subject: [PATCH 29 of 30] shelve: test that obs-shelve's --continue respects
  2336.  --keep
  2337. X-Mercurial-Node: 0977bd3ad8eb22a2cf7fa6259422f14f209af54c
  2338. X-Mercurial-Series-Index: 29
  2339. X-Mercurial-Series-Total: 30
  2340. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  2341. Date: Thu, 19 Jan 2017 06:21:13 -0800
  2342. From: Kostia Balytskyi <ikostia@fb.com>
  2343. To: mercurial-devel@mercurial-scm.org
  2344.  
  2345. # HG changeset patch
  2346. # User Kostia Balytskyi <ikostia@fb.com>
  2347. # Date 1484833972 28800
  2348. #      Thu Jan 19 05:52:52 2017 -0800
  2349. # Node ID 0977bd3ad8eb22a2cf7fa6259422f14f209af54c
  2350. # Parent  07070c6b7e73a8783ea17581736ca2b20937e2c6
  2351. shelve: test that obs-shelve's --continue respects --keep
  2352.  
  2353. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  2354. --- a/tests/test-shelve.t
  2355. +++ b/tests/test-shelve.t
  2356. @@ -3214,3 +3214,37 @@ progress
  2357.    abort: no unshelve in progress
  2358.    [255]
  2359.    $ cd ..
  2360. +
  2361. +Unshelve respects --keep even if user intervention is needed
  2362. +  $ hg init obs-unshelvekeep && cd obs-unshelvekeep
  2363. +  $ cat <<EOF >> .hg/hgrc
  2364. +  > [experimental]
  2365. +  > evolution=createmarkers
  2366. +  > obsshelve=True
  2367. +  > EOF
  2368. +  $ echo 1 > file && hg ci -Am 1
  2369. +  adding file
  2370. +  $ echo 2 >> file
  2371. +  $ hg shelve
  2372. +  shelved as default
  2373. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  2374. +  $ echo 3 >> file && hg ci -Am 13
  2375. +  $ hg shelve --list
  2376. +  default         (*s ago)    changes to: 1 (glob)
  2377. +  $ hg unshelve --keep
  2378. +  unshelving change 'default'
  2379. +  rebasing shelved changes
  2380. +  rebasing 1:3fbe6fbb0bef "changes to: 1"
  2381. +  merging file
  2382. +  warning: conflicts while merging file! (edit, then use 'hg resolve --mark')
  2383. +  unresolved conflicts (see 'hg resolve', then 'hg unshelve --continue')
  2384. +  [1]
  2385. +  $ hg resolve --mark file
  2386. +  (no more unresolved files)
  2387. +  continue: hg unshelve --continue
  2388. +  $ hg unshelve --continue
  2389. +  rebasing 1:3fbe6fbb0bef "changes to: 1"
  2390. +  unshelve of 'default' complete
  2391. +  $ hg shelve --list
  2392. +  default         (*s ago)    changes to: 1 (glob)
  2393. +  $ cd ..
  2394.  
  2395. displaying [PATCH 30 of 30] shelve: test how obs-unshelve works with a stripped shelve node ...
  2396. Content-Type: text/plain; charset="us-ascii"
  2397. MIME-Version: 1.0
  2398. Content-Transfer-Encoding: 7bit
  2399. Subject: [PATCH 30 of 30] shelve: test how obs-unshelve works with a stripped
  2400.  shelve node
  2401. X-Mercurial-Node: 3920935024e50038677254e872b6d30479f99831
  2402. X-Mercurial-Series-Index: 30
  2403. X-Mercurial-Series-Total: 30
  2404. User-Agent: Mercurial-patchbomb/4.0.2+480-4fe2b1ec7b37
  2405. Date: Thu, 19 Jan 2017 06:21:14 -0800
  2406. From: Kostia Balytskyi <ikostia@fb.com>
  2407. To: mercurial-devel@mercurial-scm.org
  2408.  
  2409. # HG changeset patch
  2410. # User Kostia Balytskyi <ikostia@fb.com>
  2411. # Date 1484835085 28800
  2412. #      Thu Jan 19 06:11:25 2017 -0800
  2413. # Node ID 3920935024e50038677254e872b6d30479f99831
  2414. # Parent  0977bd3ad8eb22a2cf7fa6259422f14f209af54c
  2415. shelve: test how obs-unshelve works with a stripped shelve node
  2416.  
  2417. diff --git a/tests/test-shelve.t b/tests/test-shelve.t
  2418. --- a/tests/test-shelve.t
  2419. +++ b/tests/test-shelve.t
  2420. @@ -3248,3 +3248,24 @@ Unshelve respects --keep even if user in
  2421.    $ hg shelve --list
  2422.    default         (*s ago)    changes to: 1 (glob)
  2423.    $ cd ..
  2424. +
  2425. +Unshelving a stripped commit aborts with an explanatory message
  2426. +  $ hg init obs-unshelve-stripped-commit && cd obs-unshelve-stripped-commit
  2427. +  $ cat <<EOF >> .hg/hgrc
  2428. +  > [experimental]
  2429. +  > evolution=createmarkers
  2430. +  > obsshelve=True
  2431. +  > EOF
  2432. +  $ echo 1 > file && hg ci -Am 1
  2433. +  adding file
  2434. +  $ echo 2 >> file
  2435. +  $ hg shelve
  2436. +  shelved as default
  2437. +  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  2438. +  $ hg strip -r 1 --config extensions.evolve=! --hidden
  2439. +  saved backup bundle to .* (re)
  2440. +  $ hg unshelve
  2441. +  unshelving change 'default'
  2442. +  abort: shelved node 3fbe6fbb0bef4b761af46e9a7456f02877469fa0 not found in repo
  2443. +  [255]
  2444. +  $ cd ..
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement