286 lines
11 KiB
Plaintext
286 lines
11 KiB
Plaintext
-*- mode: text -*-
|
|
|
|
TODO/Wish list for xtla.el
|
|
==========================
|
|
|
|
Mostly DONE section:
|
|
====================
|
|
|
|
* Some like file-diff-rev from the aba which gives you the changes to a
|
|
file between two specified revisions using the following:
|
|
diff -u $(tla file-find file.cpp $(tla tree-version)--patch-X)
|
|
$(tla file-find file.cpp $(tla tree-version)--patch-Y)
|
|
=> This is the function tla-file-ediff-rev. There should also be a
|
|
version without ediff, just showing the diff output with
|
|
diff-mode.
|
|
|
|
* Integration with ediff, which I usually prefer to diff-mode.
|
|
- This is done for M-x tla-ediff-buffer, `e' in *tla-changes*, 'd
|
|
e' in *tla-inventory*
|
|
- There is more to do from the *tla-revisions* buffer for example
|
|
(retrieve any two revisions and ediff them)
|
|
- a 3 way merge with ediff3 would be perfect. (Actually, ediff3
|
|
isn't sufficient because it shows you the differences even in the
|
|
absence of conflict.). smerge-mode, integrated in Emacs 21,
|
|
already does a very good job for this
|
|
|
|
* En entry "Branch from version" to create a symbolic tag from the
|
|
*tla-versions* buffer.
|
|
- Done for *tla-revisions*.
|
|
|
|
* Code cleaning. There are a lot of duplicates.
|
|
=> Some big code cleaning have been carried out, but such item can
|
|
never go to the "completely DONE" section ;-)
|
|
|
|
DONE section:
|
|
=============
|
|
|
|
* One line log from minibuffer to commit.
|
|
=> This should be handled in vc-arch.el?
|
|
|
|
* Add good doc strings for the functions
|
|
=> Most functions have one now.
|
|
|
|
* Recursive commands for projects using configurations.
|
|
=> implemented for tla-changes and tla-update
|
|
|
|
* Name reader should support complete location notation like:
|
|
|
|
Location: Matthieu.Moy@imag.fr--public/xtla--main--0.1
|
|
|
|
Current partial and incremental location reading is supported
|
|
like:
|
|
|
|
Archive: Matthieu.Moy@imag.fr--public
|
|
Category: xtla
|
|
Branch: main
|
|
Version: 0.1
|
|
|
|
=> The engine is implemented. Apply it to interactive functions.
|
|
|
|
* Add a texinfo file
|
|
- What should be the structure of this file?
|
|
=> Very short. Just a starting point for the users, but xtla should
|
|
be self-documented. Menus and docstrings should be sufficient
|
|
most of the time.
|
|
A demo with screenshots would be nice too. (to let people get
|
|
an idea of what xtla is in less than a minute.)
|
|
- Should we guide through the tla tutorial?
|
|
(Be carefull. I don't like people to learn a tool from the
|
|
front-end. I prefer let them understand the concepts with the
|
|
command line, and learn the front-end after. It takes a bit more
|
|
time but is much more pedagogical)
|
|
|
|
* M-x xtla should provide the buttons to jump tla-inventory,
|
|
tla-bookmarks and so on. This should be integrated with the command central?
|
|
|
|
* Optimize tla-archive-tree manipulator when it is updated.
|
|
I think using rbrowse and/or abrowse output is better than current
|
|
implementation.[Masatake] Not so much, because browsing a small
|
|
branch in a big archive would be slow (discussed on the ML)
|
|
[Matthieu]
|
|
|
|
* tla log font-lock (like ChangeLog)
|
|
|
|
* A "revert file" feature. Most of the code is already in
|
|
tla-file-ediff. (done in tla-file-revert)
|
|
|
|
* Archive mirroring.
|
|
[Matthieu Moy: I'm taking care of this]
|
|
|
|
* Prompt for saving buffer visiting files of the current tree for most
|
|
operations: commit, update, changes, ... (Which other ones ?)
|
|
|
|
* M-x xtla-update. Possibility to update from the bookmarks buffer.
|
|
|
|
* Merge xtla-fully-qualified-revision and xtla-name-construct.
|
|
[Masatake YAMATO]
|
|
|
|
* M-x tla-missing RET should be merged with tla-bookmarks-missing
|
|
|
|
* Bridge between smerge-mode and xtla.el.
|
|
[Masatake YAMATO
|
|
(Should completely replace my code -- Matthieu)
|
|
(No, I shouldn't. Each function has each necessity.)
|
|
|
|
* When there are no changes anymore, the `g' command in the
|
|
*tla-changes* buffer just prints a message in the echo area, and
|
|
doesn't update the buffer, which can be confusing; it would be
|
|
better to erase the buffer and perhaps insert the "No changes"
|
|
description to make it clear what's going on (so work slightly
|
|
differently than `M-x tla-changes' invoked from another buffer -- in
|
|
that case, just a message is good).
|
|
=> tla-changes now clears the *tla-changes* buffer before doing
|
|
anything else.
|
|
|
|
* More diff-mode commands should be bound in the *tla-changes* buffer,
|
|
e.g., `P', and `N'; maybe it can just inherit from the diff-mode
|
|
keymap?
|
|
=> We are already inheriting from diff-mode. However, the way the keymap
|
|
is managed in diff-mode is really strange, and you're right,
|
|
we're not inheriting `N' and `P'. But still, diff-file-next is
|
|
available with M-N for example. Strange ...
|
|
=> initializing tla-changes-mode-map from diff-mode-shared-map
|
|
did it.
|
|
|
|
* It would be nice if the `g' command in a *tla-changes* buffer would
|
|
would retain any existing marks (I often want to check the changes
|
|
just one last time before committing).
|
|
|
|
* Perhaps when `tla-make-log-function' is non-nil, `tla-make-log' should
|
|
check the return value, and if nil, make a normal log file. That way
|
|
the user's special version can only worry about special cases.
|
|
|
|
=> I (Matthieu MOY) did something a bit different.
|
|
tla-make-log-function now defaults to
|
|
tla-default-make-log-function, which calls "tla make-log". The
|
|
user can just write a wrapper around this function.
|
|
|
|
* Wrapper for tla import.
|
|
|
|
- From the working directory, M-x tla-start-project RET should run
|
|
. tla init-tree
|
|
. tla import --setup
|
|
. call tla-edit-log
|
|
[Mark Triggs: This is pretty much what I have done, except I have
|
|
used tla-inventory instead of tla-edit-log.]
|
|
|
|
- From the archive browser, there should be an option to offer the
|
|
user to create a new project, as you can already create new empty
|
|
categories, branches, and versions.
|
|
|
|
* There could be a menu to navigate buffers based on the variable
|
|
tla--buffers-tree. This could also be included in tla-browse.el
|
|
using tree-widget.
|
|
=> pulldown/popup menu is implemented. Maybe enough -- Masatake.
|
|
|
|
* undo modifications in local copy at tla-inventory buffer
|
|
Matthieu gave hit in the mailing list:
|
|
|
|
What I meant by "undo" was
|
|
|
|
cp `tla file-find foo.c` .
|
|
|
|
* Run missing, replay and star-merge against specified version.
|
|
|
|
* Eliminate all occurence of tla--run-arch.
|
|
|
|
* If not in a project tree, `tla-changes' should prompt for the tree
|
|
name similar to tla-inventory -- often I'd rather start out with
|
|
`changes' and skip `inventory' entirely.
|
|
|
|
* Modeline : I'd like to see something like the "compiling" item in
|
|
the modeline while compiling with M-x compile RET.
|
|
|
|
* An interface to tla help, giving the list of commands, and running
|
|
"tla <command> -H" on demand.
|
|
|
|
* Create archives with --listing and/or --signed
|
|
|
|
* make tla-inventory-toggle-* customizable
|
|
M-x customize-variable RET tla-inventory-display-* RET
|
|
|
|
* After committing from a *tla-changes* buffer, it would be good to
|
|
automatically update the buffer, so there's a clear indication
|
|
what's changed.
|
|
|
|
* Better management of buffers. xtla buffers should have a unique name
|
|
based on the directory or archive to which it refers. It should be
|
|
possible to run several tla-{change|inventory|revisions|...} in
|
|
different trees. We should keep a list of xtla related buffer to be
|
|
able to delete them afterwards. (The current regexp-based algorithm
|
|
is not satisfying in my opinion)
|
|
=> The function is there : tla--get-buffer-create, and used for
|
|
tla-changes and tla-inventory. It's used by default by
|
|
tla--show-last-process-buffer and tla--show-error-buffer.
|
|
|
|
* Tree widget based archive browser. [see tla-browse.el. -- Masatake]
|
|
- Libraries should be handled here.
|
|
|
|
* C-u C-c C-m generates buggy summary line patch numbers.
|
|
|
|
* Allow cherry picking by marking a set of revisions in a *tla-revisions*
|
|
buffer and the run replay with all of the marked revisions as argument. I
|
|
(Robert) just had a case where I would need this, i.e. I have a hacking
|
|
branch with related revisions (but they are interleaved by others) which I
|
|
want to combine into a single change set for the main branch. "tla delta"
|
|
does not help here.
|
|
|
|
* tla-browse should be stronger against errors.
|
|
Currently, when an error occur, a tree becomes broken.
|
|
[Masatake]
|
|
|
|
* Should we do something for revision libraries ?
|
|
|
|
Yes [Masatake].
|
|
- Revisions should be marked in *tla-revisions*(done)
|
|
- Adding(done)
|
|
- tla-library-tree is needed(done).
|
|
|
|
* Interface to store a changeset to a file(tla changeset?) in revisions buffer.
|
|
[?> ?=] or [?d ?>]
|
|
|
|
* Interface to apply a changeset directory to a local copy in inventory buffer.
|
|
[?M ?=] or [?< ?=] but ?< is serverd for mirror.
|
|
|
|
* M-x tla-review-last-patch RET. See my recent post "Improving
|
|
tla-changes and related commands." on xtla-el-dev@gna.org.
|
|
(Matthieu)
|
|
=> finally, I've called it tla-changes-last-revision
|
|
|
|
* I (Matthieu) have added a variable tla-buffer-refresh-function and
|
|
a function tla-generic-refresh calling it. This could be used in
|
|
all xtla modes.
|
|
|
|
* Define xtla own faces. These faces should be
|
|
derived from font-lock's standard face set.
|
|
|
|
* Don't use a string to refer xtla's buffer. Instead use symbol.
|
|
e.g.
|
|
Don't use: (get-buffer-create "*tla-missing*")
|
|
Use: (cdr (assoc 'missing tla--buffer-type-alist))
|
|
|
|
* Handle file renaming in changes buffer. Here is the example output:
|
|
|
|
[jet@localhost symresolver]$ tla changes
|
|
* looking for jet@gyve.org--inspector/symresolver--prototype--0.0--patch-9 to compare with
|
|
* comparing to jet@gyve.org--inspector/symresolver--prototype--0.0--patch-9
|
|
M Makefile.am
|
|
=> .arch-ids/symresolver.c.id .arch-ids/lib.c.id
|
|
=> symresolver.c lib.c
|
|
|
|
`=>' should be parsed.
|
|
|
|
* Interface to add entries to .arch-inventory
|
|
|
|
* Switching "default tree version " in inventory buffer
|
|
|
|
* Don't do (concat file "/"). Do (file-name-as-directory file) instead.
|
|
|
|
** Check the faces on non X, terminal environment
|
|
=> [Matthieu] I use xtla most of the time in text mode, but I have
|
|
a rather much customized Emacs. I've just checked with emacs -q,
|
|
both in dark and light background.
|
|
|
|
* We should definitely switch to ewoc.el to manage lists. This is what
|
|
pcl-cvs, dired and so are using. We would get a lot of feature (in
|
|
particular, mouse reactivity) almost for free. The code for marking
|
|
revisions could also be really improved by this. I already did this
|
|
for the *tla-bookmarks* buffer (Matthieu MOY) and for
|
|
*tla-bookmarks-missing* and *tla-revisions*, it's fairly easy to
|
|
use.
|
|
|
|
* Name read engine
|
|
-- Integrate with other parts of xtla
|
|
--- Get completion from bookmarks
|
|
|
|
* Run lint under a dedicated mode, so the user can jump to the position
|
|
where the lint reports the problem is.
|
|
=> There is now a tla tree-lint mode. It's almost finished by now,
|
|
but still not well tested and incomplete (no context menu[done], ...)
|
|
|
|
** (Again) Check `cd' usage. Its changes the default-directory of current buffer.
|
|
Sometimes it will cause bugs. (let ((default-directory ...))) may be
|
|
enough in many cases. [Matthieu] Should be OK now.
|
|
|