~veger/bzr-builddeb/fix-for-934096

« back to all changes in this revision

Viewing changes to merge_quilt.py

  • Committer: Jelmer Vernooij
  • Date: 2012-01-13 10:25:27 UTC
  • mfrom: (678.4.6 pre-commit-quilt)
  • Revision ID: jelmer@samba.org-20120113102527-utbchrplx5nnzixx
Add pre-commit hook that warns about applied quilt patches, and can
automatically unapply/apply all quilt patches.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
import tempfile
28
28
from bzrlib.revisiontree import RevisionTree
29
29
from bzrlib import (
 
30
    errors,
30
31
    merge as _mod_merge,
31
32
    trace,
32
33
    )
33
34
 
34
35
from bzrlib.plugins.builddeb.quilt import (
 
36
    quilt_applied,
 
37
    quilt_unapplied,
 
38
    quilt_pop,
35
39
    quilt_pop_all,
36
40
    quilt_push,
37
 
    quilt_pop,
 
41
    quilt_push_all,
38
42
    )
 
43
from bzrlib.plugins.builddeb.util import debuild_config
39
44
 
40
45
 
41
46
class NoUnapplyingMerger(_mod_merge.Merge3Merger):
128
133
        trace.note("Unapplying %d quilt patches", to_unapply)
129
134
        for p in to_unapply:
130
135
            quilt_pop(tree.basedir, p)
 
136
 
 
137
 
 
138
def start_commit_quilt_patches(tree):
 
139
    config = debuild_config(tree, False)
 
140
    policy = config.quilt_commit_policy
 
141
    applied_patches = quilt_applied(tree.basedir)
 
142
    unapplied_patches = quilt_unapplied(tree.basedir)
 
143
    if policy is None:
 
144
        # No policy set - just warn about having both applied and unapplied
 
145
        # patches.
 
146
        if applied_patches and unapplied_patches:
 
147
            trace.warning(
 
148
                "Committing with %d patches applied and %d patches unapplied.",
 
149
                len(applied_patches), len(unapplied_patches))
 
150
    elif policy == "applied":
 
151
        quilt_push_all(tree.basedir)
 
152
    elif policy == "unapplied":
 
153
        quilt_pop_all(tree.basedir)
 
154
    else:
 
155
        raise errors.BzrError("Invalid setting %r for quilt-commit-policy" %
 
156
                policy)