arx-users
[Top][All Lists]
Advanced

[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).




reply via email to

[Prev in Thread] Current Thread [Next in Thread]