1#!tailor 2''' 3[DEFAULT] 4verbose = False 5target-module = None 6projects = project2 7 8[project1] 9root-directory = /tmp/tailor-tests 10source = svn:project1repo 11target = darcs: 12refill-changelogs = Yes 13state-file = project1.state 14before-commit = (maybe_skip, refill, p1_remap_authors) 15after-commit = checkpoint 16 17[svn:project1repo] 18repository = svn://some.server/svn 19module = project1 20use-propset = Yes 21 22[darcs:project1] 23repository = ~/darcs/project1 24 25[monotone:project1repo] 26repository = /tmp/db 27passphrase = simba 28 29[project2] 30root-directory = /tmp/tailor-tests 31source = darcs:project1 32target = svn:project2repo 33refill-changelogs = Yes 34state-file = project2.state 35before-commit = refill 36 37[svn:project2repo] 38 39[project3] 40root-directory = /tmp/tailor-tests 41source = svn:project3repo 42target = darcs:project3repo 43state-file = hidden 44 45[svn:project3repo] 46repository = svn://sample.org/svn 47module = /trunk 48subdir = plain 49 50[project4] 51state-file = ~/tailorize/project4.state 52source = svn:project3repo 53target = darcs:project4repo 54 55[darcs:project4repo] 56subdir = darcs 57look-for-adds = True 58 59[project5] 60source = cvs:project5srepo 61target = cvs:project5trepo 62 63[cvs:project5srepo] 64repository = /tmp/tailor-tests 65 66[cvs:project5trepo] 67repository = /tmp/tailor-tests 68tag-entries = False 69 70[project6] 71root-directory = ~/tailorizedp 72state-file = hidden 73source = darcs: 74target = hg: 75 76[hg:project6] 77subdir = project6 78 79[darcs:project6] 80repository = ~/WiP/tailor 81replace-badchars = { 'a': 'b' } 82''' 83 84def maybe_skip(context, changeset): 85 for e in changeset.entries: 86 if not context.darcs.isBoringFile(e): 87 return True 88 # What a bunch of boring entries! Skip the patch 89 return False 90 91def refill(context, changeset): 92 changeset.refillChangelog() 93 return True 94 95p1_authors_map = { 96 'lele': 'Lele Gaifax <lele@example.com>', 97 'x123': 'A man ... with a name to come', 98} 99 100def p1_remap_authors(context, changeset): 101 if changeset.author in p1_authors_map: 102 changeset.author = p1_authors_map[changeset.author] 103 return True 104 105def checkpoint(context, changeset): 106 if changeset.log.startswith('Release '): 107 context.target.tagWithCheckpoint(changeset.log) 108 return True 109