wiki:MigrationSteps

Each time you run tailor, it execute the following steps:

  1. Fetch new PendingChangesets: if the StateFile is empty, tailor asks the SourceRepository to retrieve the new patches, if any, since the LastAppliedChangeset, and stores them in the StateFile.
  2. Loop over each PendingChangesets in the StateFile and
    1. Actually pull and apply the given patch to the WorkingDirectory of the SourceRepository
    2. Eventually copy the source WorkingDirectory to the target one, when using DisjunctWorkingDirectories
    3. Invoke the BeforeCommitHook
    4. Replay each ChangeSet in the patch on the TargetRepository working directory
    5. Commit the changeset as a new patch on the target system, preserving as much information as (humanly) possible (that is, author, timestamp, changelog...)
    6. Invoke the AfterCommitHook?
    7. Finally annotate the StateFileJournal about the new LastAppliedChangeset
  3. In any case, finalize the StateFile.