tests/test-bookmarks-rebase.t
author Manuel Jacob <me@manueljacob.de>
Mon, 11 Jul 2022 01:51:20 +0200
branchstable
changeset 49378 094a5fa3cf52
parent 45826 21733e8c924f
child 49621 55c6ebd11cb9
permissions -rw-r--r--
procutil: make stream detection in make_line_buffered more correct and strict In make_line_buffered(), we don’t want to wrap the stream if we know that lines get flushed to the underlying raw stream already. Previously, the heuristic was too optimistic. It assumed that any stream which is not an instance of io.BufferedIOBase doesn’t need wrapping. However, there are buffered streams that aren’t instances of io.BufferedIOBase, like Mercurial’s own winstdout. The new logic is different in two ways: First, only for the check, if unwraps any combination of WriteAllWrapper and winstdout. Second, it skips wrapping the stream only if it is an instance of io.RawIOBase (or already wrapped). If it is an instance of io.BufferedIOBase, it gets wrapped. In any other case, the function raises an exception. This ensures that, if an unknown stream is passed or we add another wrapper in the future, we don’t wrap the stream if it’s already line buffered or not wrap the stream if it’s not line buffered. In fact, this was already helpful during development of this change. Without it, I possibly would have forgot that WriteAllWrapper needs to be ignored for the check, leading to unnecessary wrapping if stdout is unbuffered. The alternative would have been to always wrap unknown streams. However, I don’t think that anyone would benefit from being less strict. We can expect streams from the standard library to be subclassing either io.RawIOBase or io.BufferedIOBase, so running Mercurial in the standard way should not regress by this change. Py2exe might replace sys.stdout and sys.stderr, but that currently breaks Mercurial anyway and also these streams don’t claim to be interactive, so this function is not called for them.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11863
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
     1
  $ echo "[extensions]" >> $HGRCPATH
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
     2
  $ echo "rebase=" >> $HGRCPATH
11198
b345b1cc124f rebase: use helpers.sh in tests
Matt Mackall <mpm@selenic.com>
parents: 8168
diff changeset
     3
11863
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
     4
initialize repository
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
     5
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
     6
  $ hg init
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
     7
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
     8
  $ echo 'a' > a
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
     9
  $ hg ci -A -m "0"
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    10
  adding a
7317
98408cb74137 bookmarks: Test if rebase works with bookmarks
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    11
11863
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    12
  $ echo 'b' > b
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    13
  $ hg ci -A -m "1"
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    14
  adding b
7317
98408cb74137 bookmarks: Test if rebase works with bookmarks
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    15
11863
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    16
  $ hg up 0
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    17
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    18
  $ echo 'c' > c
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    19
  $ hg ci -A -m "2"
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    20
  adding c
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    21
  created new head
7317
98408cb74137 bookmarks: Test if rebase works with bookmarks
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    22
11863
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    23
  $ echo 'd' > d
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    24
  $ hg ci -A -m "3"
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    25
  adding d
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    26
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    27
  $ hg bookmark -r 1 one
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    28
  $ hg bookmark -r 3 two
19112
23f785b38af3 bookmarks: fix bug that activated a bookmark even with -r passed
Sean Farley <sean.michael.farley@gmail.com>
parents: 17005
diff changeset
    29
  $ hg up -q two
11863
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    30
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    31
bookmark list
7317
98408cb74137 bookmarks: Test if rebase works with bookmarks
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    32
11863
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    33
  $ hg bookmark
13388
a184dbd9b2c5 localrepo: sort hg bookmark output
David Soria Parra <dsp@php.net>
parents: 13386
diff changeset
    34
     one                       1:925d80f479bb
11863
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    35
   * two                       3:2ae46b1d99a7
7317
98408cb74137 bookmarks: Test if rebase works with bookmarks
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    36
11863
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    37
rebase
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    38
11907
863567a1364f tests: use regular expressions instead of helpers
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11863
diff changeset
    39
  $ hg rebase -s two -d one
45796
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45771
diff changeset
    40
  rebasing 3:2ae46b1d99a7 two tip "3"
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34290
diff changeset
    41
  saved backup bundle to $TESTTMP/.hg/strip-backup/2ae46b1d99a7-e6b057bc-rebase.hg
7317
98408cb74137 bookmarks: Test if rebase works with bookmarks
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
    42
11863
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    43
  $ hg log
17005
50f434510da6 rebase: do not add second parent to rebased changeset (drop detach option) (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 13469
diff changeset
    44
  changeset:   3:42e5ed2cdcf4
13386
f78bc5ddbe4f templater: add bookmarks to templates and default output
David Soria Parra <dsp@php.net>
parents: 13385
diff changeset
    45
  bookmark:    two
11863
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    46
  tag:         tip
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    47
  parent:      1:925d80f479bb
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    48
  user:        test
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    49
  date:        Thu Jan 01 00:00:00 1970 +0000
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    50
  summary:     3
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    51
  
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    52
  changeset:   2:db815d6d32e6
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    53
  parent:      0:f7b1eb17ad24
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    54
  user:        test
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    55
  date:        Thu Jan 01 00:00:00 1970 +0000
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    56
  summary:     2
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    57
  
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    58
  changeset:   1:925d80f479bb
13416
5431b3f3e52e bookmarks: make track.current=True default behaviour and remove option (BC)
David Soria Parra <dsp@php.net>
parents: 13388
diff changeset
    59
  bookmark:    one
11863
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    60
  user:        test
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    61
  date:        Thu Jan 01 00:00:00 1970 +0000
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    62
  summary:     1
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    63
  
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    64
  changeset:   0:f7b1eb17ad24
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    65
  user:        test
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    66
  date:        Thu Jan 01 00:00:00 1970 +0000
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    67
  summary:     0
86ec95b1d37b tests: unify test-bookmarks-rebase
Martin Geisler <mg@lazybytes.net>
parents: 11208
diff changeset
    68
  
24758
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    69
aborted rebase should restore active bookmark.
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    70
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    71
  $ hg up 1
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    72
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    73
  (leaving bookmark two)
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    74
  $ echo 'e' > d
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    75
  $ hg ci -A -m "4"
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    76
  adding d
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    77
  created new head
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    78
  $ hg bookmark three
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    79
  $ hg rebase -s three -d two
45796
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45771
diff changeset
    80
  rebasing 4:dd7c838e8362 three tip "4"
24758
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    81
  merging d
26614
ef1eb6df7071 simplemerge: move conflict warning message to filemerge
Siddharth Agarwal <sid0@fb.com>
parents: 25101
diff changeset
    82
  warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
45150
dc5e5577af39 error: unify the error message formats for 'rebase' and 'unshelve'
Daniel Ploch <dploch@google.com>
parents: 35393
diff changeset
    83
  unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
45826
21733e8c924f errors: add config that lets user get more detailed exit codes
Martin von Zweigbergk <martinvonz@google.com>
parents: 45796
diff changeset
    84
  [240]
24758
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    85
  $ hg rebase --abort
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    86
  rebase aborted
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    87
  $ hg bookmark
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    88
     one                       1:925d80f479bb
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    89
   * three                     4:dd7c838e8362
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    90
     two                       3:42e5ed2cdcf4
d7451adc72f6 rebase: restore bookmark state on abort
Tony Tung <tonytung@fb.com>
parents: 23835
diff changeset
    91
25101
91c2278c68a3 rebase: check that the bookmark is still valid when restoring (issue4669)
Tony Tung <tonytung@fb.com>
parents: 24758
diff changeset
    92
after aborted rebase, restoring a bookmark that has been removed should not fail
91c2278c68a3 rebase: check that the bookmark is still valid when restoring (issue4669)
Tony Tung <tonytung@fb.com>
parents: 24758
diff changeset
    93
91c2278c68a3 rebase: check that the bookmark is still valid when restoring (issue4669)
Tony Tung <tonytung@fb.com>
parents: 24758
diff changeset
    94
  $ hg rebase -s three -d two
45796
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45771
diff changeset
    95
  rebasing 4:dd7c838e8362 three tip "4"
25101
91c2278c68a3 rebase: check that the bookmark is still valid when restoring (issue4669)
Tony Tung <tonytung@fb.com>
parents: 24758
diff changeset
    96
  merging d
26614
ef1eb6df7071 simplemerge: move conflict warning message to filemerge
Siddharth Agarwal <sid0@fb.com>
parents: 25101
diff changeset
    97
  warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
45150
dc5e5577af39 error: unify the error message formats for 'rebase' and 'unshelve'
Daniel Ploch <dploch@google.com>
parents: 35393
diff changeset
    98
  unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
45826
21733e8c924f errors: add config that lets user get more detailed exit codes
Martin von Zweigbergk <martinvonz@google.com>
parents: 45796
diff changeset
    99
  [240]
25101
91c2278c68a3 rebase: check that the bookmark is still valid when restoring (issue4669)
Tony Tung <tonytung@fb.com>
parents: 24758
diff changeset
   100
  $ hg bookmark -d three
91c2278c68a3 rebase: check that the bookmark is still valid when restoring (issue4669)
Tony Tung <tonytung@fb.com>
parents: 24758
diff changeset
   101
  $ hg rebase --abort
91c2278c68a3 rebase: check that the bookmark is still valid when restoring (issue4669)
Tony Tung <tonytung@fb.com>
parents: 24758
diff changeset
   102
  rebase aborted
91c2278c68a3 rebase: check that the bookmark is still valid when restoring (issue4669)
Tony Tung <tonytung@fb.com>
parents: 24758
diff changeset
   103
  $ hg bookmark
91c2278c68a3 rebase: check that the bookmark is still valid when restoring (issue4669)
Tony Tung <tonytung@fb.com>
parents: 24758
diff changeset
   104
     one                       1:925d80f479bb
91c2278c68a3 rebase: check that the bookmark is still valid when restoring (issue4669)
Tony Tung <tonytung@fb.com>
parents: 24758
diff changeset
   105
     two                       3:42e5ed2cdcf4