Re: Linking of a derived file that was a project file
Richard Walker <[email protected]>
| Newsgroups | gmane.comp.version-control.aegis.user |
|---|---|
| Message-ID | <CAFyNgSEPhwQ7tF06yt3-T9T8o0jURRSNCxLejBW5b2XJeFVUJg@mail.gmail.com> |
On 14 July 2011 11:14, Richard Walker wrote:
> Using: Aegis version 4.24.D004
> (Issue already addressed in 4.25?)
I can be more helpful. I downloaded 4.25.D238
and compiled with debugging on.
(Note: there is an error in common/regula_expre.cc
line 83 which makes compilation fail with
DEBUG enabled.)
The output for aedb with -trace libaegis/change/build/symlinks.cc
shows this for the .o file (I obfuscated the filename):
aegis: symlin: 419: maintain(path_rel = "src/abc/def.o",
aegis: symlin: 419: depth = 1)
aegis: symlin: 419: {
aegis: symlin: 421: top_level_symlink = 0
aegis: symlin: 509: dir_stack_walk_file
aegis: symlin: 793: file NOT at top
aegis: symlin: 904: rem_depth: 1
aegis: symlin: 980: derived file not at top
aegis: symlin: 1010: }
The symbolic link is now present.
Then I did an aecp of an unrelated file, and did
aeb. The output contains this for the .o file:
aegis: symlin: 419: maintain(path_rel = "src/abc/def.o",
aegis: symlin: 419: depth = 1)
aegis: symlin: 419: {
aegis: symlin: 421: top_level_symlink = 1
aegis: symlin: 509: dir_stack_walk_file
aegis: symlin: 512: top level symlink
aegis: symlin: 568: project file
aegis: symlin: 571: rm /home/devel/ghi/jkl.0.1.C023/src/abc/def.o
aegis: symlin: 1010: }
Ouch! So the code from line 859 onwards
labelled as by Ralph Smith (added for
version 4.22.1)
that is reached during aedb is not reached
by the subsequent aeb.
So I tried the following:
aedbu
aedb
aecp unrelated-file
rm src/abc/def.o (i.e., remove the .o file created by aedb)
aeb
This time, the aeb recreates the symbolic link for the .o file!
Then I did aeb again - which _removed_ the .o file the
first aeb created!
So, this is a defect in the maintain() function in
libaegis/change/build/symlinks.cc.