Ticket Change Details
Not logged in

Changes to ticket 2de4ae6058

By anonymous on 2009-10-30 06:29:44. See also: artifact content, and ticket history

    1. Change comment to "The 'checkout' command scan 'mlink' table for validate specified artifact-id.<br>But in rare case, if merged but no files are changed, no rows added to 'mlink' table.<br>I think it could be use function 'is_a_version()' defined in 'update.c' for validation.<blockquote><verbatim>--- ../Fossil-3275d9c63c/src/checkout.c 2009-10-30 14:14:17.000000000 +0900 +++ src/checkout.c 2009-10-30 14:15:03.000000000 +0900 @@ -75,7 +75,7 @@ if( vid==0 ){ fossil_fatal("no such check-in: %s", g.argv[2]); } - if( !db_exists("SELECT 1 FROM mlink WHERE mid=%d", vid) ){ + if( !is_a_version(vid) ){ fossil_fatal("object [%.10s] is not a check-in", blob_str(&uuid)); } load_vfile_from_rid(vid);</verbatim></blockquote>Example: <blockquote><verbatim>$ fossil new test.fsl $ md a b $ # User A add a file. $ cd a && fossil open ../test.fsl $ for e in fast second third fourth; do echo $e; done > foo.txt ; cat foo.txt fast second third fourth $ fossil add foo.txt $ fossil commit --nosign -m "add foo.txt" $ # User B open repository. $ cd ../b && fossil open ../test.fsl $ # User A append new line, and fix typo. $ cd ../a $ echo fifth >> foo.txt $ sed -i s/fast/first/ foo.txt $ fossil commit --nosign -m "add fifth and fix typo" $ # User B also fix typo and commit it with --force option. $ cd ../b $ sed -i s/fast/first/ foo.txt $ fossil commit --nosign --force -m "fix typo" $ # User A found User B's fix. merge it. $ cd ../a $ fossil timeline -n 1 === 2009-10-30 === 13:59:57 [e9d9022b4f] fix typo (user: silov tags: trunk) $ fossil merge e9d9022b4f $ fossil commit --nosign -m "thank you, but already fixed" $ # User B found merged commit, but can not checkout it. $ cd ../b $ fossil timeline -n 1 === 2009-10-30 === 14:01:06 [2ba1ef2ce2] *MERGE* thank you, but already fixed (user: silov tags: trunk) $ fossil checkout --latest fossil: object [2ba1ef2ce2] is not a check-in</verbatim></blockquote>"
    2. Change foundin to "3275d9c63c 2009-10-21T15:43:23"
    3. Change private_contact to "6b7d8d19b3584e0b0b59ee79d0f778ecd9f60111"
    4. Change severity to "Minor"
    5. Change status to "Open"
    6. Change title to "'checkout' command fail after merge without changes."
    7. Change type to "Code_Defect"