~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to tools/history2weaves.py

  • Committer: Martin Pool
  • Date: 2005-09-16 07:38:10 UTC
  • Revision ID: mbp@sourcefrog.net-20050916073810-1f358be198c9ed91
- fix bug in committing files that are renamed but not modified

- add test for this

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#! /usr/bin/python
2
 
 
 
2
#
3
3
# Copyright (C) 2005 Canonical Ltd
4
 
 
 
4
#
5
5
# This program is free software; you can redistribute it and/or modify
6
6
# it under the terms of the GNU General Public License as published by
7
7
# the Free Software Foundation; either version 2 of the License, or
8
8
# (at your option) any later version.
9
 
 
 
9
#
10
10
# This program is distributed in the hope that it will be useful,
11
11
# but WITHOUT ANY WARRANTY; without even the implied warranty of
12
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
13
# GNU General Public License for more details.
14
 
 
 
14
#
15
15
# You should have received a copy of the GNU General Public License
16
16
# along with this program; if not, write to the Free Software
17
17
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
18
 
19
19
"""Experiment in converting existing bzr branches to weaves."""
20
20
 
 
21
# To make this properly useful
 
22
#
 
23
# 1. assign text version ids, and put those text versions into
 
24
#    the inventory as they're converted.
 
25
#
 
26
# 2. keep track of the previous version of each file, rather than
 
27
#    just using the last one imported
 
28
#
 
29
# 3. assign entry versions when files are added, renamed or moved.
 
30
#
 
31
# 4. when merged-in versions are observed, walk down through them
 
32
#    to discover everything, then commit bottom-up
 
33
#
 
34
# 5. track ancestry as things are merged in, and commit that in each
 
35
#    revision
 
36
#
 
37
# Perhaps it's best to first walk the whole graph and make a plan for
 
38
# what should be imported in what order?  Need a kind of topological
 
39
# sort of all revisions.  (Or do we, can we just before doing a revision
 
40
# see that all its parents have either been converted or abandoned?)
 
41
 
21
42
try:
22
43
    import psyco
23
44
    psyco.full()
25
46
    pass
26
47
 
27
48
 
 
49
import tempfile
 
50
import hotshot, hotshot.stats
 
51
import sys
28
52
import logging
29
53
 
30
54
import bzrlib.branch
34
58
from bzrlib.progress import ProgressBar
35
59
from bzrlib.atomicfile import AtomicFile
36
60
import bzrlib.trace
37
 
import tempfile
38
 
import hotshot, hotshot.stats
39
 
import sys
 
61
 
 
62
 
40
63
 
41
64
def convert():
42
65
    bzrlib.trace.enable_default_logging()
138
161
    prof.close()
139
162
 
140
163
    stats = hotshot.stats.load(prof_f.name)
141
 
    #stats.strip_dirs()
 
164
    ##stats.strip_dirs()
142
165
    stats.sort_stats('time')
143
 
    ## XXX: Might like to write to stderr or the trace file instead but
144
 
    ## print_stats seems hardcoded to stdout
 
166
    # XXX: Might like to write to stderr or the trace file instead but
 
167
    # print_stats seems hardcoded to stdout
145
168
    stats.print_stats(20)
146
169
            
147
170