a +b@sdZddlmZddlmZddlmZmZddlm Z m Z m Z m Z m Z mZmZmZmZmZmZmZddlmZiZeeZdZed d d d ed edfd ddedfge jedejddddZddZddZdS)z=command to split a changeset into smaller ones (EXPERIMENTAL))absolute_import)_)nullrevshort) bookmarkscmdutilcommandserrorhg logcmdutilpycompat registrar revsetlang rewriteutilscmutilutil)rebasesships-with-hg-coresplitrrevsrevision to splitsREVrebaseTsrebase descendants after splits!hg split [--no-rebase] [[-r] REV])Z helpcategoryZ helpbasicc Ost|}g}|dr(||d|||d|8|d}t |t ||ppdg}t |dkrt td|}|dus|tkr|tdWdWdWddS||}|durt td|d r0t|d ||}t|d ||} ng} t||g| dt |dkrht td t||j} | r|j| |krt||d} d} zNt|||||} W| dus| |krt j!|| d d| r8t"|| n<| dus| |kr$t j!|| d d| r6t"|| 0| rR| rRt#||| | Wdn1sh0YWdn1s0YWdn1s0YdS)afsplit a changeset into smaller ones Repeatedly prompt changes and commit message for new changesets until there is nothing left in the original changeset. If --rev was not given, split the working directory parent. By default, rebase connected non-obsoleted descendants onto the new changeset. Use --no-rebase to avoid the rebase. rr.rscannot split multiple revisionsNsnothing to split scannot split working directoryrs (%d::) - (%d)s%ld - (%ld & obsolete())::scannot split a merge changesetFZ show_stats)$r Z byteskwargsgetappendextendZwlocklockZ transactionrZacceptinterventionr Zrevrangelenr InputErrorrfirstrstatusnodelistrevsrZprecheckparentsrZ bailifchangedZ_activebookmarkZ _bookmarksrZ deactivatedosplitr cleanZactivatedorebase) uirepor%optsZrevlisttrrevctxZ descendantsZtorebaseZbnameZwnodetopr11/usr/lib64/python3.9/site-packages/hgext/split.pysplit/s^     (      r3c Csg}||jkr*tj||dd|j t||Wdn1sZ0Ydd}||rh|rtdt |}| ddid8|D]"}t ||d} |td | 7}qWdn1s0Y|td 7}ntd t |}| d d ||d |d} tj||fit||d} | | krl|| ql|s|ttdt|dks|d|krtj||dd|Didd d|dS)NFrcSs |}t|j|j|j|jfS)N)r"anyZmodifiedZaddedZremovedZdeleted)r+str1r1r2 incompleteszdosplit..incompletes1HG: Splitting %s. So far it has been split into: )s templatealiass label(l,x)xrs HG: - %s s7HG: Write commit message for the next split changeset. sFHG: Splitting %s. Write commit message for the first split changeset. T)sedits interactivesmessagerscannot split an empty revisionrrcSsg|] }|qSr1)r#).0cr1r1r2 rzdosplit..)Z operationZfixphase)r#ZdirstateZp1r r(Z parentchangerZ movedirstaterrZconfigoverriderZformat_changeset_summaryupdate descriptionrZcommitr Z strkwargsrr r rZ cleanupnodes) r*r+r-r/r,Z committedr6headerr9ZsummaryZorigctxZnewctxr1r1r2r's` .  0   $r'c Cs,tj||td|gtd|ddS)Ns%lds%d)r.dest)rrZ formatspecr.)r*r+srcZdestctxr1r1r2r)s  r)N)__doc__Z __future__rZmercurial.i18nrZmercurial.noderrZ mercurialrrrr r r r r rrrrrZcmdtableZcommandZ testedwithZ commitopts2ZCATEGORY_CHANGE_MANAGEMENTr3r'r)r1r1r1r2s,  8   JC