equal
deleted
inserted
replaced
316 self.callback = progress.increment |
316 self.callback = progress.increment |
317 |
317 |
318 efilesset = set() |
318 efilesset = set() |
319 cgnodes = [] |
319 cgnodes = [] |
320 |
320 |
|
321 def ondupchangelog(cl, node): |
|
322 if cl.rev(node) < clstart: |
|
323 cgnodes.append(node) |
|
324 |
321 def onchangelog(cl, node): |
325 def onchangelog(cl, node): |
322 efilesset.update(cl.readfiles(node)) |
326 efilesset.update(cl.readfiles(node)) |
323 cgnodes.append(node) |
|
324 |
|
325 def ondupchangelog(cl, node): |
|
326 cgnodes.append(node) |
|
327 |
327 |
328 self.changelogheader() |
328 self.changelogheader() |
329 deltas = self.deltaiter() |
329 deltas = self.deltaiter() |
330 if not cl.addgroup( |
330 if not cl.addgroup( |
331 deltas, |
331 deltas, |
363 ml = repo.manifestlog |
363 ml = repo.manifestlog |
364 # validate incoming csets have their manifests |
364 # validate incoming csets have their manifests |
365 for cset in pycompat.xrange(clstart, clend): |
365 for cset in pycompat.xrange(clstart, clend): |
366 mfnode = cl.changelogrevision(cset).manifest |
366 mfnode = cl.changelogrevision(cset).manifest |
367 mfest = ml[mfnode].readdelta() |
367 mfest = ml[mfnode].readdelta() |
368 # store file cgnodes we must see |
368 # store file nodes we must see |
369 for f, n in pycompat.iteritems(mfest): |
369 for f, n in pycompat.iteritems(mfest): |
370 needfiles.setdefault(f, set()).add(n) |
370 needfiles.setdefault(f, set()).add(n) |
371 |
371 |
372 # process the files |
372 # process the files |
373 repo.ui.status(_(b"adding file changes\n")) |
373 repo.ui.status(_(b"adding file changes\n")) |
421 b'pretxnchangegroup', |
421 b'pretxnchangegroup', |
422 throw=True, |
422 throw=True, |
423 **pycompat.strkwargs(hookargs) |
423 **pycompat.strkwargs(hookargs) |
424 ) |
424 ) |
425 |
425 |
426 added = [cl.node(r) for r in pycompat.xrange(clstart, clend)] |
426 added = pycompat.xrange(clstart, clend) |
427 phaseall = None |
427 phaseall = None |
428 if srctype in (b'push', b'serve'): |
428 if srctype in (b'push', b'serve'): |
429 # Old servers can not push the boundary themselves. |
429 # Old servers can not push the boundary themselves. |
430 # New servers won't push the boundary if changeset already |
430 # New servers won't push the boundary if changeset already |
431 # exists locally as secret |
431 # exists locally as secret |
441 # outside, their phases are going to be pushed |
441 # outside, their phases are going to be pushed |
442 # alongside. Therefor `targetphase` is |
442 # alongside. Therefor `targetphase` is |
443 # ignored. |
443 # ignored. |
444 targetphase = phaseall = phases.draft |
444 targetphase = phaseall = phases.draft |
445 if added: |
445 if added: |
446 phases.registernew(repo, tr, targetphase, added) |
446 phases.registernew(repo, tr, targetphase, [], revs=added) |
447 if phaseall is not None: |
447 if phaseall is not None: |
448 phases.advanceboundary(repo, tr, phaseall, cgnodes) |
448 phases.advanceboundary(repo, tr, phaseall, cgnodes, revs=added) |
|
449 cgnodes = [] |
449 |
450 |
450 if changesets > 0: |
451 if changesets > 0: |
451 |
452 |
452 def runhooks(unused_success): |
453 def runhooks(unused_success): |
453 # These hooks run when the lock releases, not when the |
454 # These hooks run when the lock releases, not when the |
456 if clstart >= len(repo): |
457 if clstart >= len(repo): |
457 return |
458 return |
458 |
459 |
459 repo.hook(b"changegroup", **pycompat.strkwargs(hookargs)) |
460 repo.hook(b"changegroup", **pycompat.strkwargs(hookargs)) |
460 |
461 |
461 for n in added: |
462 for rev in added: |
462 args = hookargs.copy() |
463 args = hookargs.copy() |
463 args[b'node'] = hex(n) |
464 args[b'node'] = hex(cl.node(rev)) |
464 del args[b'node_last'] |
465 del args[b'node_last'] |
465 repo.hook(b"incoming", **pycompat.strkwargs(args)) |
466 repo.hook(b"incoming", **pycompat.strkwargs(args)) |
466 |
467 |
467 newheads = [h for h in repo.heads() if h not in oldheads] |
468 newheads = [h for h in repo.heads() if h not in oldheads] |
468 repo.ui.log( |
469 repo.ui.log( |