bzr branch
http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
| 
2052.3.2
by John Arbash Meinel
 Change Copyright .. by Canonical to Copyright ... Canonical  | 
1  | 
# Copyright (C) 2006 Canonical Ltd
 | 
| 
1887.1.1
by Adeodato Simó
 Do not separate paragraphs in the copyright statement with blank lines,  | 
2  | 
#
 | 
| 
1616.1.7
by Martin Pool
 New developer commands 'weave-list' and 'weave-join'.  | 
3  | 
# This program is free software; you can redistribute it and/or modify
 | 
4  | 
# it under the terms of the GNU General Public License as published by
 | 
|
5  | 
# the Free Software Foundation; either version 2 of the License, or
 | 
|
6  | 
# (at your option) any later version.
 | 
|
| 
1887.1.1
by Adeodato Simó
 Do not separate paragraphs in the copyright statement with blank lines,  | 
7  | 
#
 | 
| 
1616.1.7
by Martin Pool
 New developer commands 'weave-list' and 'weave-join'.  | 
8  | 
# This program is distributed in the hope that it will be useful,
 | 
9  | 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
|
10  | 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
|
11  | 
# GNU General Public License for more details.
 | 
|
| 
1887.1.1
by Adeodato Simó
 Do not separate paragraphs in the copyright statement with blank lines,  | 
12  | 
#
 | 
| 
1616.1.7
by Martin Pool
 New developer commands 'weave-list' and 'weave-join'.  | 
13  | 
# You should have received a copy of the GNU General Public License
 | 
14  | 
# along with this program; if not, write to the Free Software
 | 
|
15  | 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
|
16  | 
||
17  | 
"""builtin bzr commands relating to individual weave files
 | 
|
18  | 
||
19  | 
These should never normally need to be used by end users, but might be
 | 
|
20  | 
of interest in debugging or data recovery.
 | 
|
21  | 
"""
 | 
|
22  | 
||
23  | 
import sys  | 
|
24  | 
||
25  | 
from bzrlib.commands import Command  | 
|
| 
1773.4.1
by Martin Pool
 Add pyflakes makefile target; fix many warnings  | 
26  | 
from bzrlib.trace import warning  | 
| 
1616.1.7
by Martin Pool
 New developer commands 'weave-list' and 'weave-join'.  | 
27  | 
|
| 
1551.15.24
by Aaron Bentley
 Make list-weave list knits, rename to list-versionedfile  | 
28  | 
class cmd_versionedfile_list(Command):  | 
29  | 
"""List the revision ids present in a versionedfile, alphabetically"""  | 
|
| 
1616.1.7
by Martin Pool
 New developer commands 'weave-list' and 'weave-join'.  | 
30  | 
|
31  | 
hidden = True  | 
|
| 
1551.15.24
by Aaron Bentley
 Make list-weave list knits, rename to list-versionedfile  | 
32  | 
takes_args = ['filename']  | 
33  | 
aliases = ['weave-list']  | 
|
| 
1616.1.7
by Martin Pool
 New developer commands 'weave-list' and 'weave-join'.  | 
34  | 
|
| 
1551.15.24
by Aaron Bentley
 Make list-weave list knits, rename to list-versionedfile  | 
35  | 
def run(self, filename):  | 
| 
1616.1.7
by Martin Pool
 New developer commands 'weave-list' and 'weave-join'.  | 
36  | 
from bzrlib.weavefile import read_weave  | 
| 
1551.15.24
by Aaron Bentley
 Make list-weave list knits, rename to list-versionedfile  | 
37  | 
from bzrlib.transport import get_transport  | 
38  | 
from bzrlib import osutils  | 
|
| 
3350.6.4
by Robert Collins
 First cut at pluralised VersionedFiles. Some rather massive API incompatabilities, primarily because of the difficulty of coherence among competing stores.  | 
39  | 
vf = read_weave(file(filename, 'rb'))  | 
| 
1551.15.24
by Aaron Bentley
 Make list-weave list knits, rename to list-versionedfile  | 
40  | 
names = vf.versions()  | 
| 
1616.1.7
by Martin Pool
 New developer commands 'weave-list' and 'weave-join'.  | 
41  | 
names.sort()  | 
42  | 
print '\n'.join(names)  | 
|
43  | 
||
44  | 
||
| 
1616.1.17
by Martin Pool
 New 'weave-plan-merge' and 'weave-merge-text' commands lifted from weave.py  | 
45  | 
class cmd_weave_plan_merge(Command):  | 
46  | 
"""Show the plan for merging two versions within a weave"""  | 
|
47  | 
hidden = True  | 
|
48  | 
takes_args = ['weave_file', 'revision_a', 'revision_b']  | 
|
49  | 
||
50  | 
def run(self, weave_file, revision_a, revision_b):  | 
|
| 
1773.4.1
by Martin Pool
 Add pyflakes makefile target; fix many warnings  | 
51  | 
from bzrlib.weavefile import read_weave  | 
| 
1616.1.17
by Martin Pool
 New 'weave-plan-merge' and 'weave-merge-text' commands lifted from weave.py  | 
52  | 
w = read_weave(file(weave_file, 'rb'))  | 
53  | 
for state, line in w.plan_merge(revision_a, revision_b):  | 
|
54  | 
            # make sure to print every line with a newline, even if it doesn't
 | 
|
55  | 
            # really have one
 | 
|
56  | 
if not line:  | 
|
57  | 
                continue
 | 
|
58  | 
if line[-1] != '\n':  | 
|
59  | 
state += '!eol'  | 
|
60  | 
line += '\n'  | 
|
61  | 
if '\n' in line[:-1]:  | 
|
62  | 
warning("line in weave contains embedded newline: %r" % line)  | 
|
63  | 
print '%15s | %s' % (state, line),  | 
|
64  | 
||
65  | 
class cmd_weave_merge_text(Command):  | 
|
66  | 
"""Debugging command to merge two texts of a weave"""  | 
|
67  | 
hidden = True  | 
|
68  | 
takes_args = ['weave_file', 'revision_a', 'revision_b']  | 
|
69  | 
||
70  | 
def run(self, weave_file, revision_a, revision_b):  | 
|
| 
1773.4.1
by Martin Pool
 Add pyflakes makefile target; fix many warnings  | 
71  | 
from bzrlib.weavefile import read_weave  | 
| 
1616.1.17
by Martin Pool
 New 'weave-plan-merge' and 'weave-merge-text' commands lifted from weave.py  | 
72  | 
w = read_weave(file(weave_file, 'rb'))  | 
73  | 
p = w.plan_merge(revision_a, revision_b)  | 
|
74  | 
sys.stdout.writelines(w.weave_merge(p))  |