~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to shelf.py

  • Committer: Aaron Bentley
  • Date: 2005-08-17 16:18:19 UTC
  • Revision ID: abentley@panoramicfeedback.com-20050817161819-b2f1d02352df0dae
Shelve: Abstracted out filename selection and root-finding

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
 
29
29
    return 1
30
30
 
 
31
def tree_root():
 
32
    return run_bzr('root')[0].strip()
 
33
 
 
34
def next_shelf():
 
35
    return os.path.join(tree_root(), '.bzr-shelf')
 
36
 
 
37
def last_shelf():
 
38
    return os.path.join(tree_root(), '.bzr-shelf')
 
39
 
31
40
def unshelve():
32
 
    root = run_bzr('root')[0].strip()
33
 
    shelf = os.path.join(root, '.bzr-shelf')
 
41
    shelf = last_shelf()
34
42
 
35
43
    if not os.path.exists(shelf):
36
44
        raise Exception("No shelf found in '%s'" % shelf)
38
46
    patch = open(shelf, 'r').read()
39
47
 
40
48
    print >>sys.stderr, "Reapplying shelved patches"
41
 
    pipe = os.popen('patch -d %s -s -p0' % root, 'w')
 
49
    pipe = os.popen('patch -d %s -s -p0' % tree_root(), 'w')
42
50
    pipe.write(patch)
43
51
    pipe.flush()
44
52
 
65
73
        print >>sys.stderr, 'Nothing to shelve'
66
74
        return True
67
75
 
68
 
    root = run_bzr('root')[0].strip()
69
 
    shelf = os.path.join(root, '.bzr-shelf')
 
76
    shelf = next_shelf()
70
77
    print >>sys.stderr, "Saving shelved patches to", shelf
71
78
    shelf = open(shelf, 'a')
72
79
 
78
85
    shelf.close()
79
86
 
80
87
    print >>sys.stderr, "Reverting shelved patches"
81
 
    pipe = os.popen('patch -d %s -sR -p0' % root, 'w')
 
88
    pipe = os.popen('patch -d %s -sR -p0' % tree_root(), 'w')
82
89
    for patch in patches:
83
90
       pipe.write(str(patch))
84
91
    pipe.flush()