[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: pcl-cvs: merging in wrong revision file when conflicts
From: |
Dominique de Waleffe |
Subject: |
Re: pcl-cvs: merging in wrong revision file when conflicts |
Date: |
Tue, 26 Apr 2005 14:02:48 +0200 |
User-agent: |
Mozilla Thunderbird 1.0 (Windows/20041206) |
Dominique de Waleffe wrote:
Upon inspection of the directory, I noticed that I had
.#f.1.20
.#f.1.23
.#f.1.5
.#f.1.6
.#f.1.7
in my directory. The merge used .#f.1.7 instead of .#f.1.23.
I removed .#f.7 and then tried again. The merge used .#f.1.6
I then removed .#f.1.{5,6} and tried again, now it used .#f.1.23 the
expected version.
I have a strong suspicion that there is a sort done on the names to
find the most recent conflicting revision and that this sort is done
incorrectly on strings instead of on numerical revision numbers.
I spent a little time at lunch to investigate... Here is the result.
I one sentence: file-newer-than-file-p gives incorrect results.
Steps:
I edebug'ed cvs-fileinfo->backup-file in pcvs-info.
I forced a conflict in file: service.reverse_transform.adhoc.m
Dired shows:
-rw-rw-rw- 1 Winx509 root 50306 04-13 16:56
.#service.reverse_transform.adhoc.m.1.18
-rw-rw-rw- 1 Winx509 root 62937 04-26 13:36
.#service.reverse_transform.adhoc.m.1.24
-rw-rw-rw- 1 Winx509 root 10932 03-21 17:34
.#service.reverse_transform.adhoc.m.1.4
This is the messages collected while tracing the function:
Result: [cl-struct-cvs-fileinfo nil CONFLICT nil "service_broker/" "service.reverse_transform.adhoc.m" nil nil ("1.24" . "1.25") "RCS file:
/var/cvs/map/mas/service_broker/service.reverse_transform.adhoc.m,v\nretrieving revision 1.24\nretrieving revision 1.25\nMerging differences between
1.24 and 1.25 into service.reverse_transform.adhoc.m\nrcsmerge: warning: conflicts during merge\ncvs server: conflicts found in
service.reverse_transform.adhoc.m\nC service.reverse_transform.adhoc.m"]
Result: "service_broker/"
Result: [cl-struct-cvs-fileinfo nil CONFLICT nil "service_broker/" "service.reverse_transform.adhoc.m" nil nil ("1.24" . "1.25") "RCS file:
/var/cvs/map/mas/service_broker/service.reverse_transform.adhoc.m,v\nretrieving revision 1.24\nretrieving revision 1.25\nMerging differences between
1.24 and 1.25 into service.reverse_transform.adhoc.m\nrcsmerge: warning: conflicts during merge\ncvs server: conflicts found in
service.reverse_transform.adhoc.m\nC service.reverse_transform.adhoc.m"]
Result: "service.reverse_transform.adhoc.m"
Result: "service_broker/"
Result: "d:/documents and settings/winx509/My
Documents/MAS/mas/service_broker/" [2 times]
Result: ".#"
Result: "\\.#"
Result: "service.reverse_transform.adhoc.m"
Result: "service\\.reverse_transform\\.adhoc\\.m"
Result:
"\\`\\.#service\\.reverse_transform\\.adhoc\\.m\\(\\.[0-9]+\\.[0-9]+\\)+\\'"
Result: (".#service.reverse_transform.adhoc.m.1.18"
".#service.reverse_transform.adhoc.m.1.24" ".#service.reverse_transform.adhoc.m.1.4") [2
times]
Result: ".#service.reverse_transform.adhoc.m.1.18"
Result: t
Result: nil
Result: t [3 times]
Result: "service_broker/"
Result: ".#service.reverse_transform.adhoc.m.1.18"
Result: "service_broker/.#service.reverse_transform.adhoc.m.1.18" [3 times]
Result: ".#service.reverse_transform.adhoc.m.1.24"
Result: t
Auto-saving...done
Result: "service_broker/.#service.reverse_transform.adhoc.m.1.18"
Result: nil
Result: ".#service.reverse_transform.adhoc.m.1.24"
Result: "service_broker/.#service.reverse_transform.adhoc.m.1.18"
Result: t [3 times]
Result: "service_broker/"
Result: ".#service.reverse_transform.adhoc.m.1.24"
Result: "service_broker/.#service.reverse_transform.adhoc.m.1.24" [3 times]
Result: ".#service.reverse_transform.adhoc.m.1.4"
Result: t
Result: "service_broker/.#service.reverse_transform.adhoc.m.1.24"
Result: nil
---------------HERE IS THE PROBLEM (file-newer-than-file-p f bf)-------------
Result: ".#service.reverse_transform.adhoc.m.1.4" (that is f)
Result: "service_broker/.#service.reverse_transform.adhoc.m.1.24" (that is bf)
------------SHOULD RETURN NIL, according to time stamps
Result: t [3 times]
Result: "service_broker/"
Result: ".#service.reverse_transform.adhoc.m.1.4"
Result: "service_broker/.#service.reverse_transform.adhoc.m.1.4" [5 times]
Final result of the function is thus wrong.
Hope this helps. So this seems not specific to pcl-cvs but local to
file-newer-than-file-p.
Might even be happening only on Windows?
Regards,
D.