##// END OF EJS Templates
push: fix bug in prepush logic and its tests
Sune Foldager -
r10771:01f097c4 stable
parent child Browse files
Show More
@@ -1575,9 +1575,8 b' class localrepository(repo.repository):'
1575 localbrheads = self.branchmap()
1575 localbrheads = self.branchmap()
1576 else:
1576 else:
1577 localbrheads = {}
1577 localbrheads = {}
1578 for n in heads:
1578 ctxgen = (self[n] for n in msng_cl)
1579 branch = self[n].branch()
1579 self._updatebranchcache(localbrheads, ctxgen)
1580 localbrheads.setdefault(branch, []).append(n)
1581
1580
1582 newbranches = list(set(localbrheads) - set(remotebrheads))
1581 newbranches = list(set(localbrheads) - set(remotebrheads))
1583 if newbranches: # new branch requires --force
1582 if newbranches: # new branch requires --force
@@ -166,4 +166,32 b' hg -R k ci -m merge'
166 hg -R k push -r a j
166 hg -R k push -r a j
167 echo
167 echo
168
168
169 echo % prepush -r should not allow you to sneak in new heads
170 hg init l
171 cd l
172 echo a >> foo
173 hg -q add foo
174 hg -q branch a
175 hg -q ci -d '0 0' -ma
176 hg -q up null
177 echo a >> foo
178 hg -q add foo
179 hg -q branch b
180 hg -q ci -d '0 0' -mb
181 cd ..
182 hg -q clone l m -u a
183 cd m
184 hg -q merge b
185 hg -q ci -d '0 0' -mmb
186 hg -q up 0
187 echo a >> foo
188 hg -q ci -ma2
189 hg -q up 2
190 echo a >> foo
191 hg -q branch -f b
192 hg -q ci -d '0 0' -mb2
193 hg -q merge 3
194 hg -q ci -d '0 0' -mma
195 hg push ../l -b b
196
169 exit 0
197 exit 0
@@ -100,7 +100,7 b' abort: push creates new remote branches:'
100 1
100 1
101 pushing to ../f
101 pushing to ../f
102 searching for changes
102 searching for changes
103 abort: push creates new remote branches: d!
103 abort: push creates new remote branches: c, d!
104 (use 'hg push -f' to force)
104 (use 'hg push -f' to force)
105 1
105 1
106 % fail on multiple head push
106 % fail on multiple head push
@@ -167,6 +167,11 b' 1 files updated, 0 files merged, 0 files'
167 (branch merge, don't forget to commit)
167 (branch merge, don't forget to commit)
168 pushing to j
168 pushing to j
169 searching for changes
169 searching for changes
170 abort: push creates new remote branches: b!
171 (use 'hg push -f' to force)
172
173 % prepush -r should not allow you to sneak in new heads
174 pushing to ../l
175 searching for changes
170 abort: push creates new remote heads on branch 'a'!
176 abort: push creates new remote heads on branch 'a'!
171 (you should pull and merge or use push -f to force)
177 (did you forget to merge? use push -f to force)
172
General Comments 0
You need to be logged in to leave comments. Login now