UUID has been added to files to better handle various situations involving renames. From the rename POV it has been a success, however it created unexpected behavior in the users due to the transactional nature of Aegis.
When aede is executed for a change that is modifying for the first time a file in the branch, aede will add an entry to the branch fstate with (action = transparent, about_to_by_copied_by, locked_by). Then another change is integrated and the pfstate file inherits the content of the branch fstate file. When querying the repository about an integrated change the view path will use, if properly configured, the pfstate content, thus skipping that entry.
The aegis repository is organized as a tree where the leaves represents change-sets and the inner nodes are branches. The view_path feature that join the content of leaves and ancestor nodes to create a view of the entire code base is really handy, however it is difficult to insulate a branch from changes in an ancestor added after the branch creation. Such behavior is useful when doing maintenance-only activity on a branch.
Aegis delegates the history function to external commands (rcs, fhist, aesvt, etc ...). Currently it is not possible to change the history tool in an easy/clean way, it is possible to hack something that may work however the best solution is to make the history query "module" time-safe. In order to achieve this target two more changes has to be implemented:
It has to be noted that the history tool can be safely changeble only for projects created with aegis v.4.26 or later because aegis 4.26 introduced the ability to locate the change of a file edit in a reasonable time (whitout the need of the rollforward machinery). Adding the usage of the rollforward machinery make it possible to have a time-safe history even for projects created with a pre-4.26 release, however it may introduce memory and speed issues. For the moment such change is not implemented.
The aedist -rec command has been improved to handle change-set dependencies: aedist refuse to apply a change-set that has unresolved dependencies unless instructed by the user. The set of change-set identified by the edit-origin-UUID file's attribute forms the implicit dependencies. A user defined change's attribute (requires) forms the explicit dependencies.
File renames are still modeled by a remove/create pair. A new file action should be introduced: file_action_rename.
<gnus:[[gnus:nntp+news.gmane.org:gmane.comp.version-control.aegis.user>][Aegis Users mirror]] Update to use change_identifier:
Ask Peter about html reports.
see http://repo.or.cz/w/git.git?a=blob;f=fast-import.c;h=e72b28679410155cb43968d315f02588e89fd5f1;hb=7f718e8b46b37a9e1caf58a372938817f04885d9 and http://www.kernel.org/pub/software/scm/git/docs/git-fast-import.html
It should work without having aegis installed. Works liked aedist -{replay,missing}
The problem here is to map aegis change's ID (UUID) to identifiers in the target system.
Need to parse the aegis meta-data to extract info. Can (ab)use the python tokenizer?
The aegis meta-data maps well to what tailor expects.
Date: 2008/10/10 07:41:33 AM