1
.. -*- mode: indented-text; compile-command: "make -C doc" -*-
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
13
These are classified by approximate size: an hour or less, a day or
14
less, and several days or more.
20
* Fix tests so that import errors caused by modules don't produce false reports
21
that the tests themselves don't exist.
23
* Fix tests so that one test failure doesn't prevent other tests from running
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
28
* tests for running the commit editor, and fix problem of not passing in
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
35
* Merge should ignore the destination's working directory, otherwise
36
we get an error about the statcache when pulling from a remote
39
* Add of a file that was present in the base revision should put back
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
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.
50
* Should be able to copy files between branches to preserve their
51
file-id (and perhaps eventually parentage.)
53
* -r option should take a revision-id as well as a revno.
55
* ``bzr info`` should count only people with distinct email addresses as
56
different committers. (Or perhaps only distinct userids?)
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.
63
* ``bzr ignore`` command that just adds a line to the ``.bzrignore`` file
64
and makes it versioned. Fix this to break symlinks.
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
71
__ http://mail.python.org/pipermail/python-list/2001-April/037847.html
73
* Separate read and write version checks?
75
* ``bzr status DIR`` should give status on all files under that
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)
82
* ``bzr inventory -r REV`` and perhaps unify this with ``bzr ls``,
83
giving options to display ids, types, etc.
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.
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.
94
* Maybe also store directories in the statcache so that we can quickly
95
identify that they still exist.
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.
101
* Perhaps split command infrastructure from the actual command
104
* Cleaner support for negative boolean options like --no-recurse.
106
* Statcache should possibly map all file paths to / separators
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.
114
* Patches should probably use only forward slashes, even on Windows,
115
otherwise Unix patch can't apply them. (?)
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