;๒ ˆธ“Fc@sdZdZdZdklZdklZlZlZdk l Z dk l Z l Z dklZdklZd efd „ƒYZd efd „ƒYZed ddddddeddƒedddddddeddƒeddddddƒeddd dedd!ƒgZed"d#dd$dd%ƒed&d'dddedd(ƒed)d*dddedd+ƒgZed,d-dd.dd/dd0dd1ƒed2d3dd4dd/dd5dd6ƒed7d8d9dd:dd;dd<ƒed=d>d?dd@ddAddBƒedCdDdEddFddGddHddIƒedJdKddLdd;deddMƒedNdOddPddAddQƒedRddSddTƒgZedUdddeddVddWƒedXdddeddYddZƒgZd[e fd\„ƒYZd]e fd^„ƒYZd_„Zd`S(as) Implement the frontend functionalities. sreStructuredTexts0.9.29(s getLogger(s OptionParsers OptionGroupsOption(sTailorException(sConfigsConfigurationError(sProject(sGetUpstreamChangesetsFailures TailorizercBs;tZdZd„Zd„Zd„Zd„Zd„ZRS(s˜ A Tailorizer has two main capabilities: its able to bootstrap a new Project, or brought it in sync with its current upstream revision. cCsi|io>|iid|iƒ|io|iid|iƒqHn|iidt|ƒƒtSdS(s4 Print the changeset being applied. sChangeset "%s"sLog message: %ssGoing to apply changeset: %sN( sselfsverboseslogsinfos changesetsrevisionsdebugsstrsTrue(sselfs changeset((sA/mnt/gmirror/ports/devel/tailor/work/tailor-0.9.29/vcpx/tailor.pys _applyables  cCs&|io|iiddƒndS(s9 Separate changesets with an empty line. s-*iN(sselfsverboseslogsinfo(sselfs changeset((sA/mnt/gmirror/ports/devel/tailor/work/tailor-0.9.29/vcpx/tailor.pys_applied+s cCs|iid|i|iƒ|iƒ}y|i|iƒWn|ii dƒ‚nX|i i |iddƒ}y|i |ƒ}Wn |ii d|iƒ‚nXy |i|i|d|jƒWn |ii d|iƒ‚nX|iidƒdS( sC Bootstrap a new tailorized module. First of all prepare the target system working directory such that it can host the upstream source tree. This is backend specific. Then extract a copy of the upstream repository and import its content into the target repository. sBootstrapping "%s" in "%s"s!Cannot prepare working directory!sstart-revisionsINITIALsCheckout of %s failed!s*Could not import checked out tree in "%s"!sBootstrap completedN(sselfslogsinfosnamesrootdirs workingDirsdwdsprepareWorkingDirectoryssourcescriticalsconfigsgetsrevisionscheckoutUpstreamRevisionsactualsimportFirstRevision(sselfsactualsdwdsrevision((sA/mnt/gmirror/ports/devel/tailor/work/tailor-0.9.29/vcpx/tailor.pys bootstrap3s*     cCsL|iid|i|iƒ|iƒ}y|iƒ}WnKt j o |ii d|iƒ‚n!|ii d|iƒ‚nX|i ƒoฅ|iidƒy(|i d|id|iƒ\}}WnEt j o |ii d|iƒ‚n|ii dƒ‚nX|o|iid |iƒqHn|iid ƒd S( s8 Update an existing tailorized project. sUpdating "%s" in "%s"s'Leaving "%s" unchanged, stopped by usersUnable to get changes for "%s"s$Applying pending upstream changesetss applyablesapplieds(Leaving "%s" incomplete, stopped by users"Upstream change application faileds&Update completed, now at revision "%s"s)Update completed with no upstream changesN(sselfslogsinfosnamesrootdirs workingDirsdwdsgetPendingChangesetsspendingssKeyboardInterruptswarningscriticalspendingsapplyPendingChangesetss _applyables_appliedslasts conflictssrevision(sselfslastspendingssdwds conflicts((sA/mnt/gmirror/ports/devel/tailor/work/tailor-0.9.29/vcpx/tailor.pysupdateXs6    (   cs!dkl}dkl}dkl}t‡d†}|dƒ|_|ddt ƒ}|t j o|i ƒ|_ n|dƒ|_|d ƒ|_yEˆiƒ o)ˆiƒ|d ƒd jodSqฯnˆiƒWn@ttfj o.}td |ˆiiˆiifƒ‚nXdS( N(sExternalCommand(sSynchronizableTargetWorkingDir(s Changesetcs ˆiiˆi|d|ƒSdS(Nsraw(sselfsconfigsgetsnamesoptionsraw(soptionsraw(sself(sA/mnt/gmirror/ports/devel/tailor/work/tailor-0.9.29/vcpx/tailor.pyspconfigƒssdebugspatch-name-formatsrawsremove-first-log-linesrefill-changelogssstart-revisionsHEADs%s: it seems that the encoding used by either the source ("%s") or the target ("%s") repository cannot properly represent at least one of the characters in the upstream changelog. You need to use a wider character set, using "encoding" option, or even "encoding-errors-policy".(sshwrapsExternalCommandstargetsSynchronizableTargetWorkingDirschangess ChangesetsFalsespconfigsDEBUGsTrues pname_formatsNonesstripsPATCH_NAME_FORMATsREMOVE_FIRST_LOG_LINEsREFILL_MESSAGEsselfsexistss bootstrapsupdatesUnicodeDecodeErrorsUnicodeEncodeErrorsexcsConfigurationErrorssourcesencoding(sselfs ChangesetsExternalCommandsexcspconfigs pname_formatsSynchronizableTargetWorkingDir((sselfsA/mnt/gmirror/ports/devel/tailor/work/tailor-0.9.29/vcpx/tailor.pys__call__~s$      (s__name__s __module__s__doc__s _applyables_applieds bootstrapsupdates__call__(((sA/mnt/gmirror/ports/devel/tailor/work/tailor-0.9.29/vcpx/tailor.pys Tailorizers   % &s RecogOptioncBstZdZd„ZRS(s Make it possible to recognize an option explicitly given on the command line from those simply coming out for their default value. cCs4t|d|itƒti|||||ƒSdS(Ns__seen_( ssetattrsvaluessselfsdestsTruesOptionsprocesssoptsvaluesparser(sselfsoptsvaluesvaluessparser((sA/mnt/gmirror/ports/devel/tailor/work/tailor-0.9.29/vcpx/tailor.pysprocessงs(s__name__s __module__s__doc__sprocess(((sA/mnt/gmirror/ports/devel/tailor/work/tailor-0.9.29/vcpx/tailor.pys RecogOptionกs s-Ds--debugsdestsdebugsactions store_truesdefaultshelpszPrint each executed command. This also keeps temporary files with the upstream logs, that are otherwise removed after use.s-vs --verbosesverbosesFBe verbose, echoing the changelog of each applied changeset to stdout.s-cs --configfilesmetavarsCONFNAMEs‰Centralized storage of projects info. With this option and no other arguments tailor will update every project found in the config file.s --encodingsCHARSETswForce the output encoding to given CHARSET, rather then using the user's default settings specified in the environment.s-Fs--patch-name-formatsFORMATs4Specify the prototype that will be used to compute the patch name. The prototype may contain %(keyword)s such as 'author', 'date', 'revision', 'firstlogline', 'remaininglog'. It defaults to 'Tailorized "%(revision)s"'; setting it to the empty string means that tailor will simply use the original changelog.s-1s--remove-first-log-linesชRemove the first line of the upstream changelog. This is intended to pair with --patch-name-format, when using its 'firstlogline' variable to build the name of the patch.s-Ns--refill-changelogssBRefill every changelog, useful when upstream logs are not uniform.s-ss --source-kinds source_kindsVC-KINDsUSelect the backend for the upstream source version control VC-KIND. Default is 'cvs'.scvss-ts --target-kinds target_kindsMSelect VC-KIND as backend for the shadow repository, with 'darcs' as default.sdarcss-Rs --repositorys--source-repositoryssource_repositorysREPOSs‰Specify the upstream repository, from where bootstrap will checkout the module. REPOS syntax depends on the source version control kind.s-ms--modules--source-modules source_modulesMODULEswSpecify the module to checkout at bootstrap time. This has different meanings under the various upstream systems: with CVS it indicates the module, while under SVN it's the prefix of the tree you want and must begin with a slash. Since it's used in the description of the target repository, you may want to give it a value with darcs too, even though it is otherwise ignored.s-rs --revisions--start-revisionsstart_revisionsREVsjSpecify the revision bootstrap should checkout. REV must be a valid 'name' for a revision in the upstream version control kind. For CVS it may be either a branch name, a timestamp or both separated by a space, and timestamp may be 'INITIAL' to denote the beginning of time for the given branch. Under Darcs, INITIAL is a shortcut for the name of the first patch in the upstream repository, otherwise it is interpreted as the name of a tag. Under Subversion, 'INITIAL' is the first patch that touches given repos/module, otherwise it must be an integer revision number. 'HEAD' means the latest version in all backends.sINITIALs-Ts--target-repositorystarget_repositorys`Specify the target repository, the one that will receive the patches coming from the source one.s-Ms--target-modules target_modules`Specify the module on the target repository that will actually contain the upstream source tree.s--subdirsDIRshForce the subdirectory where the checkout will happen, by default it's the tail part of the module name.s --use-propsets use_propsetsสUse 'svn propset' to set the real date and author of each commit, instead of appending these information to the changelog. This requires some tweaks on the SVN repository to enable revision propchanges.s--ignore-arch-idss ignore_idss5Ignore .arch-ids directories when using a tla source.sExistingProjectErrorcBstZdZRS(sProject seems already tailored(s__name__s __module__s__doc__(((sA/mnt/gmirror/ports/devel/tailor/work/tailor-0.9.29/vcpx/tailor.pysExistingProjectErrors sProjectNotTailoredcBstZdZRS(sNot a tailored project(s__name__s __module__s__doc__(((sA/mnt/gmirror/ports/devel/tailor/work/tailor-0.9.29/vcpx/tailor.pysProjectNotTailoreds cCs:dk} dkl} tdddtdtƒ}t|dƒ}|i t ƒt|dƒ}|i t ƒt|d ƒ} | i tƒ|i|ƒ|i|ƒ|i| ƒ|iƒ\}} h}xu|iiƒD]d\}}|id ƒoqิn|d jot|d |ƒo t|ƒ||id dƒddddddddgD]}||jo ||=q(q(Wt t|ƒ}|i)dƒ|i*d}|i,dd|ƒ|i-d} |i,dd| ƒ|i,dd| ƒƒ|i,dd|i/pdƒ|i,dd d!ƒ|i,dd|i0ƒ|i)|ƒ|i1o|i,|d"|i1ƒnt2d#ƒ}|i4d$ƒ|i5o|i,|d%|i5ƒn|i)| ƒ|i6o|i,| d"|i6ƒn|i7o|i,| d%|i7ƒn|i8o$| i9i:d&ƒ|i:| i;ƒn|i<ot%d|ƒ}|ƒn |i8 o| i9i:d'ƒndS((sา Script entry point. Parse the command line options and arguments, and for each specified working copy directory (the current working directory by default) execute the tailorization steps. N(sgetcwdsusages%prog [options] [project ...]sversions option_listsBootstrap optionssUpdate optionssVC specific optionss__s configfiles__seen_s_s-iis source-kinds target-kinds source-modules target-modulessource-repositorystarget-repositorysstart-revisionssubdirsprojects:sourcessources:targetstargetsroot-directorys.s state-files tailor.states repositorystailorsUBy any chance you forgot either the --source-repository or the --configfile option...smodules…You should put the following configuration in some file, adjust it as needed and use --configfile option with that file as argument: s'Operation not performed, try --verbose (=ssyssossgetcwds OptionParsers __version__sGENERAL_OPTIONSsparsers OptionGroups bsoptionss add_optionssBOOTSTRAP_OPTIONSs upoptionssUPDATE_OPTIONSs vcoptionssVC_SPECIFIC_OPTIONSsadd_option_groups parse_argssoptionssargssdefaultss__dict__sitemssksvs startswithshasattrsstrsreplaces configfileslensargvsNonesConfigsopensconfigsprojectssprojnames Tailorizers tailorizersGetUpstreamChangesetsFailuresomits add_sections source_kindssourcessets target_kindstargetssubdirsstart_revisionssource_repositorys getLoggersloggerswarnings source_modulestarget_repositorys target_modulesverbosesstderrswritesstdoutsdebug(s bsoptionssparsers tailorizersprojnamessources upoptionssloggersconfigsdefaultssargssgetcwdssyss vcoptionsstargetsksomitsvsoptions((sA/mnt/gmirror/ports/devel/tailor/work/tailor-0.9.29/vcpx/tailor.pysmainsŽ           !$3                    N(s__doc__s __docformat__s __version__sloggings getLoggersoptparses OptionParsers OptionGroupsOptionsvcpxsTailorExceptions vcpx.configsConfigsConfigurationErrors vcpx.projectsProjects vcpx.sourcesGetUpstreamChangesetsFailures Tailorizers RecogOptionsFalsesNonesGENERAL_OPTIONSsUPDATE_OPTIONSsBOOTSTRAP_OPTIONSsVC_SPECIFIC_OPTIONSsExistingProjectErrorsProjectNotTailoredsmain(sGetUpstreamChangesetsFailuresUPDATE_OPTIONSs __docformat__sBOOTSTRAP_OPTIONSsTailorExceptionsProjectNotTailoredsConfigsOptionsVC_SPECIFIC_OPTIONSsmains RecogOptions OptionParsersGENERAL_OPTIONSsProjects OptionGroups __version__sExistingProjectErrorsConfigurationErrors getLoggers Tailorizer((sA/mnt/gmirror/ports/devel/tailor/work/tailor-0.9.29/vcpx/tailor.pys? s`    ‰