~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to TODO

  • Committer: Martin Pool
  • Date: 2007-04-04 01:14:52 UTC
  • mto: This revision was merged to the branch mainline in revision 2397.
  • Revision ID: mbp@sourcefrog.net-20070404011452-zu2bwb9ajc78m37s
Move some TODO items into the bug tracker

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
.. -*- mode: indented-text; compile-command: "make -C doc" -*-
2
 
 
3
 
 
4
 
*******************
5
 
Things to do in bzr
6
 
*******************
7
 
 
8
 
 
9
 
See also various low-level TODOs in the source code.  Try looking in
10
 
the list archive or on gmane.org for previous discussion of these
11
 
issues.
12
 
 
13
 
These are classified by approximate size: an hour or less, a day or
14
 
less, and several days or more.
15
 
 
16
 
 
17
 
Small things
18
 
------------
19
 
 
20
 
* Fix tests so that import errors caused by modules don't produce false reports
21
 
  that the tests themselves don't exist.
22
 
 
23
 
* Fix tests so that one test failure doesn't prevent other tests from running
24
 
 
25
 
* print a message at the end of running the tests telling them that the
26
 
  test log and output exists but can be removed
27
 
 
28
 
* tests for running the commit editor, and fix problem of not passing in 
29
 
  multiple arguments
30
 
 
31
 
* Merging add of a new file clashing with an existing file doesn't
32
 
  work; add gets an error that it's already versioned and the merge
33
 
  aborts.
34
 
 
35
 
* Merge should ignore the destination's working directory, otherwise
36
 
  we get an error about the statcache when pulling from a remote
37
 
  branch.
38
 
 
39
 
* Add of a file that was present in the base revision should put back
40
 
  the previous file-id.
41
 
 
42
 
* Not sure I'm happy with needing to pass a root id to EmptyTree;
43
 
  comparing anything against an EmptyTree with no root should have the
44
 
  same effect(?)
45
 
 
46
 
* Handle diff of files which do not have a trailing newline; probably
47
 
  requires patching difflib to get it exactly right, or otherwise
48
 
  calling out to GNU diff.
49
 
 
50
 
* Should be able to copy files between branches to preserve their
51
 
  file-id (and perhaps eventually parentage.)
52
 
 
53
 
* -r option should take a revision-id as well as a revno.
54
 
 
55
 
* ``bzr info`` should count only people with distinct email addresses as
56
 
  different committers.  (Or perhaps only distinct userids?)
57
 
 
58
 
* On Windows, command-line arguments should be `glob-expanded`__,
59
 
  because the shell doesn't do this.  However, there are probably some
60
 
  commands where this shouldn't be done, such as 'bzr ignore', because
61
 
  we want to accept globs.
62
 
 
63
 
* ``bzr ignore`` command that just adds a line to the ``.bzrignore`` file
64
 
  and makes it versioned.  Fix this to break symlinks.
65
 
 
66
 
* Any useful sanity checks in 'bzr ignore'?  Perhaps give a warning if
67
 
  they try to add a single file which is already versioned, or if they
68
 
  add a pattern which already exists, or if it looks like they gave an
69
 
  unquoted glob.
70
 
 
71
 
__ http://mail.python.org/pipermail/python-list/2001-April/037847.html
72
 
 
73
 
* Separate read and write version checks?
74
 
 
75
 
* ``bzr status DIR`` should give status on all files under that
76
 
  directory.
77
 
 
78
 
* ``bzr log DIR`` should give changes to any files within DIR; at the
79
 
  moment it only lists things which modify the specific named file
80
 
  (and not its contents)
81
 
 
82
 
* ``bzr inventory -r REV`` and perhaps unify this with ``bzr ls``,
83
 
  giving options to display ids, types, etc.
84
 
 
85
 
* RemoteBranch could maintain a cache either in memory or on disk.  We
86
 
  know more than an external cache might about which files are
87
 
  immutable and which can vary.  On the other hand, it's much simpler
88
 
  to just use an external proxy cache.
89
 
 
90
 
  Perhaps ~/.bzr/http-cache.  Baz has a fairly simple cache under
91
 
  ~/.arch-cache, containing revision information encoded almost as a
92
 
  bunch of archives.  Perhaps we could simply store full paths.
93
 
 
94
 
* Maybe also store directories in the statcache so that we can quickly
95
 
  identify that they still exist.
96
 
 
97
 
* Diff should show timestamps; for files from the working directory we
98
 
  can use the file itself; for files from a revision we should use the
99
 
  commit time of the revision.
100
 
 
101
 
* Perhaps split command infrastructure from the actual command
102
 
  definitions.
103
 
 
104
 
* Cleaner support for negative boolean options like --no-recurse.
105
 
 
106
 
* Statcache should possibly map all file paths to / separators
107
 
 
108
1
* quotefn doubles all backslashes on Windows; this is probably not the
109
2
  best thing to do.  What would be a better way to safely represent
110
3
  filenames?  Perhaps we could doublequote things containing spaces,
111
4
  on the principle that filenames containing quotes are unlikely?
112
5
  Nice for humans; less good for machine parsing.
113
6
 
114
 
* Patches should probably use only forward slashes, even on Windows,
115
 
  otherwise Unix patch can't apply them. (?)
116
 
 
117
7
* Branch.update_revisions() inefficiently fetches revisions from the
118
8
  remote server twice; once to find out what text and inventory they
119
9
  need and then again to actually get the thing.  This is a bit