|
|
updating to branch default
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
pushing to ../a
|
|
|
searching for changes
|
|
|
abort: push creates new remote heads on branch 'default'!
|
|
|
(you should pull and merge or use push -f to force)
|
|
|
pulling from ../a
|
|
|
searching for changes
|
|
|
adding changesets
|
|
|
adding manifests
|
|
|
adding file changes
|
|
|
added 1 changesets with 1 changes to 1 files (+1 heads)
|
|
|
(run 'hg heads' to see heads, 'hg merge' to merge)
|
|
|
pushing to ../a
|
|
|
searching for changes
|
|
|
abort: push creates new remote heads on branch 'default'!
|
|
|
(did you forget to merge? use push -f to force)
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
(branch merge, don't forget to commit)
|
|
|
pushing to ../a
|
|
|
searching for changes
|
|
|
adding changesets
|
|
|
adding manifests
|
|
|
adding file changes
|
|
|
added 2 changesets with 1 changes to 1 files
|
|
|
adding foo
|
|
|
updating to branch default
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
created new head
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
created new head
|
|
|
merging foo
|
|
|
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
|
|
|
(branch merge, don't forget to commit)
|
|
|
pushing to ../c
|
|
|
searching for changes
|
|
|
abort: push creates new remote heads on branch 'default'!
|
|
|
(did you forget to merge? use push -f to force)
|
|
|
1
|
|
|
pushing to ../c
|
|
|
searching for changes
|
|
|
no changes found
|
|
|
0
|
|
|
pushing to ../c
|
|
|
searching for changes
|
|
|
abort: push creates new remote heads on branch 'default'!
|
|
|
(did you forget to merge? use push -f to force)
|
|
|
1
|
|
|
pushing to ../c
|
|
|
searching for changes
|
|
|
abort: push creates new remote heads on branch 'default'!
|
|
|
(did you forget to merge? use push -f to force)
|
|
|
1
|
|
|
pushing to ../c
|
|
|
searching for changes
|
|
|
adding changesets
|
|
|
adding manifests
|
|
|
adding file changes
|
|
|
added 2 changesets with 2 changes to 1 files (+2 heads)
|
|
|
0
|
|
|
pushing to ../c
|
|
|
searching for changes
|
|
|
adding changesets
|
|
|
adding manifests
|
|
|
adding file changes
|
|
|
added 1 changesets with 1 changes to 1 files (-1 heads)
|
|
|
0
|
|
|
comparing with ../c
|
|
|
searching for changes
|
|
|
no changes found
|
|
|
% issue 450
|
|
|
pushing to ../e
|
|
|
searching for changes
|
|
|
adding changesets
|
|
|
adding manifests
|
|
|
adding file changes
|
|
|
added 1 changesets with 1 changes to 1 files
|
|
|
0
|
|
|
pushing to ../e
|
|
|
searching for changes
|
|
|
adding changesets
|
|
|
adding manifests
|
|
|
adding file changes
|
|
|
added 1 changesets with 1 changes to 1 files
|
|
|
0
|
|
|
% issue 736
|
|
|
% push on existing branch and new branch
|
|
|
pushing to ../f
|
|
|
searching for changes
|
|
|
abort: push creates new remote branches: c!
|
|
|
(use 'hg push --new-branch' to create new remote branches)
|
|
|
1
|
|
|
pushing to ../f
|
|
|
searching for changes
|
|
|
abort: push creates new remote branches: c!
|
|
|
(use 'hg push --new-branch' to create new remote branches)
|
|
|
1
|
|
|
% multiple new branches
|
|
|
pushing to ../f
|
|
|
searching for changes
|
|
|
abort: push creates new remote branches: c, d!
|
|
|
(use 'hg push --new-branch' to create new remote branches)
|
|
|
1
|
|
|
pushing to ../f
|
|
|
searching for changes
|
|
|
abort: push creates new remote branches: c, d!
|
|
|
(use 'hg push --new-branch' to create new remote branches)
|
|
|
1
|
|
|
% fail on multiple head push
|
|
|
pushing to ../f
|
|
|
searching for changes
|
|
|
abort: push creates new remote heads on branch 'a'!
|
|
|
(did you forget to merge? use push -f to force)
|
|
|
1
|
|
|
% push replacement head on existing branches
|
|
|
pushing to ../f
|
|
|
searching for changes
|
|
|
adding changesets
|
|
|
adding manifests
|
|
|
adding file changes
|
|
|
added 2 changesets with 2 changes to 1 files
|
|
|
0
|
|
|
% merge of branch a to other branch b followed by unrelated push on branch a
|
|
|
pushing to ../f
|
|
|
searching for changes
|
|
|
adding changesets
|
|
|
adding manifests
|
|
|
adding file changes
|
|
|
added 1 changesets with 1 changes to 1 files (-1 heads)
|
|
|
0
|
|
|
pushing to ../f
|
|
|
searching for changes
|
|
|
adding changesets
|
|
|
adding manifests
|
|
|
adding file changes
|
|
|
added 1 changesets with 1 changes to 1 files (+1 heads)
|
|
|
0
|
|
|
% cheating the counting algorithm
|
|
|
pushing to ../f
|
|
|
searching for changes
|
|
|
adding changesets
|
|
|
adding manifests
|
|
|
adding file changes
|
|
|
added 2 changesets with 2 changes to 1 files
|
|
|
0
|
|
|
% failed push of new named branch
|
|
|
pushing to ../f
|
|
|
searching for changes
|
|
|
abort: push creates new remote branches: e!
|
|
|
(use 'hg push --new-branch' to create new remote branches)
|
|
|
1
|
|
|
% using --new-branch to push new named branch
|
|
|
pushing to ../f
|
|
|
searching for changes
|
|
|
adding changesets
|
|
|
adding manifests
|
|
|
adding file changes
|
|
|
added 1 changesets with 1 changes to 1 files
|
|
|
0
|
|
|
% checking prepush logic does not allow silently pushing multiple new heads
|
|
|
adding init
|
|
|
adding a
|
|
|
updating to branch default
|
|
|
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
adding b
|
|
|
created new head
|
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
adding c
|
|
|
created new head
|
|
|
pushing to h
|
|
|
searching for changes
|
|
|
abort: push creates new remote heads on branch 'default'!
|
|
|
(you should pull and merge or use push -f to force)
|
|
|
|
|
|
% check prepush logic with merged branches
|
|
|
marked working directory as branch a
|
|
|
adding foo
|
|
|
updating to branch a
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
marked working directory as branch b
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
(branch merge, don't forget to commit)
|
|
|
pushing to j
|
|
|
searching for changes
|
|
|
abort: push creates new remote branches: b!
|
|
|
(use 'hg push --new-branch' to create new remote branches)
|
|
|
|
|
|
% prepush -r should not allow you to sneak in new heads
|
|
|
pushing to ../l
|
|
|
searching for changes
|
|
|
abort: push creates new remote heads on branch 'a'!
|
|
|
(did you forget to merge? use push -f to force)
|
|
|
% check prepush with new branch head on former topo non-head
|
|
|
marked working directory as branch A
|
|
|
adding a
|
|
|
marked working directory as branch B
|
|
|
adding b
|
|
|
updating to branch B
|
|
|
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
adding b1
|
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
adding a2
|
|
|
%% glog of local
|
|
|
@ 2: A a2
|
|
|
|
|
|
|
| o 1: B b
|
|
|
|/
|
|
|
o 0: A a
|
|
|
|
|
|
%% glog of remote
|
|
|
@ 2: B b1
|
|
|
|
|
|
|
o 1: B b
|
|
|
|
|
|
|
o 0: A a
|
|
|
|
|
|
%% outgoing
|
|
|
comparing with inner
|
|
|
searching for changes
|
|
|
2: A a2
|
|
|
pushing to inner
|
|
|
searching for changes
|
|
|
adding changesets
|
|
|
adding manifests
|
|
|
adding file changes
|
|
|
added 1 changesets with 1 changes to 1 files (+1 heads)
|
|
|
% check prepush with new branch head on former topo head
|
|
|
marked working directory as branch A
|
|
|
adding a
|
|
|
marked working directory as branch B
|
|
|
adding b
|
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
adding a1
|
|
|
updating to branch A
|
|
|
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
adding b1
|
|
|
adding a2
|
|
|
%% glog of local
|
|
|
@ 3: A a2
|
|
|
|
|
|
|
o 2: A a1
|
|
|
|
|
|
|
| o 1: B b
|
|
|
|/
|
|
|
o 0: A a
|
|
|
|
|
|
%% glog of remote
|
|
|
@ 3: B b1
|
|
|
|
|
|
|
| o 2: A a1
|
|
|
| |
|
|
|
o | 1: B b
|
|
|
|/
|
|
|
o 0: A a
|
|
|
|
|
|
%% outgoing
|
|
|
comparing with inner
|
|
|
searching for changes
|
|
|
3: A a2
|
|
|
pushing to inner
|
|
|
searching for changes
|
|
|
adding changesets
|
|
|
adding manifests
|
|
|
adding file changes
|
|
|
added 1 changesets with 1 changes to 1 files
|
|
|
% check prepush with new branch head and new child of former branch head
|
|
|
% but child is on different branch
|
|
|
marked working directory as branch A
|
|
|
adding a
|
|
|
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
marked working directory as branch B
|
|
|
adding b
|
|
|
updating to branch B
|
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
marked working directory as branch B
|
|
|
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
|
marked working directory as branch A
|
|
|
%% glog of local
|
|
|
@ 5: A b3
|
|
|
|
|
|
|
| o 4: B a3
|
|
|
| |
|
|
|
o | 3: B b1
|
|
|
| |
|
|
|
o | 2: B b0
|
|
|
/
|
|
|
o 1: A a1
|
|
|
|
|
|
|
o 0: A a0
|
|
|
|
|
|
%% glog of remote
|
|
|
@ 3: B b1
|
|
|
|
|
|
|
o 2: B b0
|
|
|
|
|
|
o 1: A a1
|
|
|
|
|
|
|
o 0: A a0
|
|
|
|
|
|
%% outgoing
|
|
|
comparing with inner
|
|
|
searching for changes
|
|
|
4: B a3
|
|
|
5: A b3
|
|
|
pushing to inner
|
|
|
searching for changes
|
|
|
abort: push creates new remote heads on branch 'A'!
|
|
|
(did you forget to merge? use push -f to force)
|
|
|
pushing to inner
|
|
|
searching for changes
|
|
|
abort: push creates new remote heads on branch 'A'!
|
|
|
(did you forget to merge? use push -f to force)
|
|
|
comparing with inner
|
|
|
searching for changes
|
|
|
no changes found
|
|
|
|