[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Arx-users] TODO list
From: |
Walter Landry |
Subject: |
[Arx-users] TODO list |
Date: |
Tue, 07 Dec 2004 22:42:05 -0500 (EST) |
As promised, here is a list of things on my TODO list. There are
actually two lists: what I will do, and what I am thinking of doing.
They are in rough priority, although some easy unimportant things will
probably get done before some hard important things. The notes are
rather rough and mostly to jog my memory, so if there is something
that you don't understand, speak up.
Cheers,
Walter
Things that will happen:
* Make ArX work with both gnomevfs 2.8 (must not escape http urls),
and older versions (must escape http urls).
* Have register-archive always check for public keys.
* Get Windows and OS X with fink working
* Improved tagging mechanism
* implement "annotate": First read the patch logs to find out which
patches modify the files, including renames and deletes. Then
manually scan the patches and put the prefix in front of the
appropriate lines.
* Have the "merge" help page include some examples.
* Ask for confirmation for delete-branch and delete-revision unless
--force. Print out "arx browse" or "arx log --formatted" respectively
before asking.
* Give a better error message when trying to do things (mirror,
missing, browse, etc.) with revisions that does not exist in the
archive.
* Use revision ranges in a lot more places. Something like
foo.1.2,3-6, foo.1.2,-6, and foo.1.2,3-
Use it in log, library, replay, get-patch, archive-cache,
tree-cache, mirror.
* More robust tempname facility
* A true 3-way merge as in monotone. We can use diff3 + a way to deal
with conflicting moves
* Make it easy to resolve conflicts with ediff, meld, xxdiff, etc.
* Binaries for Debian, Red Hat, Suse, Mandrake, AIX, HP-UX, OS X,
Irix
* Write a post-commit hook that does smarter archive caching.
Something like 'ssh -f address@hidden "(arx archive-cache -a "$ARX_REVISION"
&& arx archive-cache -d "$ARX_PREVIOUS_REVISION")'
* Get plain http working better with something like http-blows and
automatically updating .listing files, or maybe just use a cgi
script, or maybe a post-commit hook and "arx fix-listing".
* get arch-pqm to accept patches mailed directly, remove my-id, have
something in ArX which emails patches.
* Get cscvs working with ArX
* Get something like ViewARCH or ArchZOOM working with ArX
* install a signal handler: We have to have a global list of temp
directories and archive locks. Then they could be cleaned up there.
* L10N
* update to latest boost, maybe use it as is? Have to get fs::copy and
serialization working.
* have a way of sealing and unsealing an archive. Not like tla which
has versionfix-N stuff. It just prevents you from committing.
Maybe a simple chmod on the archive/category/branch/ directory?
Can also seal entire archives and categories.
* VCG graph output for ancestry
* Have a status command, perhaps by improving and renaming inventory
* Two things:
1) need a copy operation
2) When merging, merging a new file into a directory that had moved does
not put the new file into the new directory, but uses the old
directory instead.
We fix these by changing the patch layout. Instead of mod-dir
index etc., have a single changes file. Inside that file, have
add, delete, move, copy, and patch. An add, move and copy would
also have appended a list of its parent directory destinations.
patch can apply to something that has just been added, moved, or
copied.
When doing the add, move, and copy, look for the parent directory.
If that doesn't exist, look for it's parent, etc. until we get to
the top. Then we create the needed directories with the specified
inventory id (and properties?).
Copy would also have a log header: Copied-files.
Things that might happen
* default regexes for _arx/ignore with "param ignore-default"
* make it possible to force xdelta diffing on a file with a property
arx:binary? Or use a mime-type?
* change init-tree to init and get to checkout? Then the syntax will
be more similar to CVS.
* Have a command, apply ordinary diff, that first runs "edit" on all
of the files to be patched, and then patches. Or maybe just tell
people to run "commit ."
* Pure-merge, where it applies each patch in turn and then commits
with the original message. Make it an option to "merge", or maybe
"replay", since replay is already doing things one at a time.
* trackdown, which allows you to run a function on every revision until it
returns true. Something like
for i in `arx log --header Revision`;
do arx get $i temp;
cd temp
if(exec function)==true
print $i
exit
cd ..
rm -rf temp
done
Maybe just document it.
* Adapt Archway for ArX? Written in perl, so it ain't gonna be me.
* Combine patch logs in the tree, so that we have a single file at
patch-logs/branch/,logs. Either serialize a vector of strings, or
use a real database (sqlite?). Need to modify mkpatch/dopatch so
that it looks at the single file and not at the file directories,
but it still reads/writes patches in those directories.
* Use ARCHROOT or local tree instead of my-default-archive.
* Make ignore regexes work on the entire path instead of just the leaf.
* Combine the patch-logs within a project tree into a single zip file
for each branch
* reorganize the archive so that we have ,0-100 , ,101-200 , ,201-300
, etc. for the patches, and then each patch is within those
directories. Need performance numbers to make sure that this is
really a win.
* If have a revision library, use that exclusively. Need a way to set
policy on the revision library, so that some branches have
revisions deleted as new ones are created, while others keep them
around. The default is to delete. library-policy?
That way, the linking of branches makes branching even cheaper.
Or maybe get rid of revision libraries?
* Have a way to mark whether an archive is remote or not (NFS over
thin pipes)
* Use the linux crypto API if it exists
* Get connection sharing working with ssh -M (ssh 3.9).
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Arx-users] TODO list,
Walter Landry <=