View Ticket
Not logged in
Ticket UUID: a483f0ab3f0d4da07bb764bf6bd0625a2faddcd7
Title: tree checksum does not match repository after commit
Status: Open Type: Code_Defect
Severity: Critical Priority: Medium
Subsystem: Resolution: Open
Last Modified: 2010-11-13 14:54:41
Version Found In: [64459dd091]
Description & Comments:
Cannot check in file changes to my repository, getting the error above, 100% repeatable. Repository is about 148MB. Repository file and content files to be applied by the commit available for download from a website I run on request.

drh added on 2010-06-07 12:18:38:
This error is a safety mechanism to prevent corrupt check-ins.

Please checkout a separate copy of the source tree you are trying to commit against and run a recursive "diff" on the two directories and send me the results. Also please send the output of "fossil status".


anonymous added on 2010-06-09 02:56:09:
Sent in email response to Dr. Hipp. Also occurs in version 2010-05-21. Does not occur if I blow away the _FOSSIL_ and manifest files, open the repository again, and re-apply my changes manually to the directory tree, then commit, so it appears to be corrupt checkout files rather than an inability for fossil to handle the file changes in the directory tree.

-----------------

Dr. Hipp,

Attached is a diff and status output as requested. Note that the error occurs also in the latest fossil.exe from 5/21/10.

Note that the repository is at M:\fileshare\dev\v73.fossil on my system. I created a separate copy of the tree at M:\fileshare\devcopy and ran the diff between those two directories. There are some files that in dev directory that I exclude from fossil, and the diff will show that.

I can get you the entire M:\fileshare\dev directory zipped or otherwise compressed and put it on a website if you need that to reproduce the problem on your systems.

Note that the problem will go away if I 'blow away' my checkout by removing the _FOSSIL_ and manifest files, and then do fossil open v73.fossil again, and update the files manually in this tree to match what they were before, so the problem appears to be corrupt checkout files rather than inability to handle the file changes in the directory tree.

At this point the error is not critical for me, as I 'resolved' it last night by completely recreating the repository from scratch in a separate area in order to continue with my work. I recognize that that was a extreme solution, but did not know what else to do at that time. In the future, I would choose to resolve it instead by blowing away my checkout connection files '_FOSSIL_' and the 'manifests', and then do the open, apply changes, and commit again.

I am keeping this set of files solely so that you can debug the problem in case fossil needs patching. If there is no real problem with fossil or nothing that you can do to debug and fix a potential code defect in fossil, let me know so that I can remove the old files from my system.

Also, I tried to move M:\fileshare\dev to some other area to continue with the rest of my work, but it appears that the checkout file _FOSSIL_ hardcodes the absolute path to the v73.fossil repository file, and so moving it would result in a non-usable test case, unless I want to try editing the _FOSSIL_ file with HxD to relocate my repository. You might consider having _FOSSIL_ use a relative path instead to the repository if possible, since many people will choose to put their tree and repository in the same area. ---------

repository: M:/Fileshare/dev/v73.fossil local-root: M:/Fileshare/dev/ server-code: 3eb7635abee9a2e55353eb8bdd0acef65f41e50c checkout: e327322ee19fcc6c2d1aa7aea2c2bccd4b2f9dfc 2010-06-07 00:38:19 UTC parent: ec426f797e99280e70ff5a4193267324544cb4fc 2010-05-25 02:51:54 UTC tags: trunk EDITED V73/Common/Common.vbproj EDITED V73/Common/Info.vb EDITED V73/Common/source/database/databaseLink.vb EDITED V73/Common/source/database/databaseLinkType.vb EDITED V73/Common/source/debug/debugMethods.vb EDITED V73/Common/source/generic/dictionary.vb EDITED V73/Common/source/generic/generics.vb EDITED V73/Common/source/generic/interface.vb EDITED V73/Common/source/generic/list.vb EDITED V73/Common/source/language/sql.vb EDITED V73/Common/source/language/xml.vb EDITED V73/Common/source/object/matchList.vb ADDED V73/Common/source/string/hexadecimal.vb EDITED V73/Common/source/string/stringMethods.vb ADDED V73/Common/source/windows/assembly.vb ADDED V73/Common/source/windows/controls.vb ADDED V73/Common/source/windows/encryption.vb ADDED V73/Common/source/windows/form.vb ADDED V73/Common/source/windows/guid.vb ADDED V73/Common/source/windows/path.vb ADDED V73/Common/source/windows/process.vb ADDED V73/Common/source/windows/registry.vb ADDED V73/CommonWeb/Info.vb ADDED V73/CommonWeb/Web.sln ADDED V73/CommonWeb/Web.vbproj ADDED V73/CommonWeb/source/web/cookie.vb ADDED V73/CommonWeb/source/web/web.vb DELETED V73/Fossil/Fossil-filetype.reg EDITED V73/Fossilizer/Fossilizer.sln DELETED V73/Fossilizer/Fossilizer.vbproj DELETED V73/Fossilizer/Info.vb DELETED V73/Fossilizer/MainForm.Designer.vb DELETED V73/Fossilizer/MainForm.resx DELETED V73/Fossilizer/MainForm.vb DELETED V73/Fossilizer/My Project/app.manifest DELETED V73/Fossilizer/bin/Debug/Fossilizer.exe DELETED V73/Fossilizer/bin/Debug/V73.Common.dll ADDED V73/Fossilizer/dll/FossilizerDll.vbproj ADDED V73/Fossilizer/dll/Info.vb ADDED V73/Fossilizer/dll/System.Data.SQLite.dll ADDED V73/Fossilizer/dll/fossil.exe ADDED V73/Fossilizer/dll/invoke/fossil.vb ADDED V73/Fossilizer/dll/invoke/sqlite.vb ADDED V73/Fossilizer/dll/object/dependency.vb ADDED V73/Fossilizer/dll/object/organization.vb ADDED V73/Fossilizer/dll/object/project.vb ADDED V73/Fossilizer/dll/object/projectFile.vb ADDED V73/Fossilizer/dll/object/server.vb ADDED V73/Fossilizer/dll/object/user.vb ADDED V73/Fossilizer/dll/object/workingDirectory.vb ADDED V73/Fossilizer/dll/workspace/userPreferences.vb DELETED V73/Fossilizer/file.vb DELETED V73/Fossilizer/global.vb ADDED V73/Fossilizer/main/Fossilizer.vbproj ADDED V73/Fossilizer/main/Info.vb ADDED V73/Fossilizer/main/My Project/app.manifest ADDED V73/Fossilizer/main/extensions/organization.vb ADDED V73/Fossilizer/main/extensions/project.vb ADDED V73/Fossilizer/main/extensions/user.vb ADDED V73/Fossilizer/main/extensions/workingDirectory.vb ADDED V73/Fossilizer/main/form/AddUser.Designer.vb ADDED V73/Fossilizer/main/form/AddUser.resx ADDED V73/Fossilizer/main/form/AddUser.vb ADDED V73/Fossilizer/main/form/Projects.Designer.vb ADDED V73/Fossilizer/main/form/Projects.resx ADDED V73/Fossilizer/main/form/Projects.vb ADDED V73/Fossilizer/main/form/SelectItem.Designer.vb ADDED V73/Fossilizer/main/form/SelectItem.resx ADDED V73/Fossilizer/main/form/SelectItem.vb ADDED V73/Fossilizer/main/fossilizer.exe.config ADDED V73/Fossilizer/main/global.vb DELETED V73/Web/Info.vb DELETED V73/Web/Web.sln DELETED V73/Web/Web.vbproj DELETED V73/Web/source/web/cookie.vb DELETED V73/Web/source/web/web.vb DELETED V73/Website/default.htm ADDED V73/Website/www/default.htm EDITED VCC/VCC/VCC.sln EDITED VCC/VCC/VCC.vbproj EDITED VCC/VCC/churchWeb/util.vb EDITED VCC/lifecrossings/Bin/V73.Common.dll EDITED VCC/lifecrossings/Bin/V73.Common.xml EDITED VCC/lifecrossings/Bin/VCC.dll EDITED VCC/lifecrossings/Bin/Web.dll EDITED VCC/lifecrossings/lifecrossings.sln EDITED VCC/menofvictory/bin/V73.Common.dll EDITED VCC/menofvictory/bin/V73.Common.xml EDITED VCC/menofvictory/bin/VCC.dll EDITED VCC/menofvictory/bin/Web.dll EDITED VCC/menofvictory/menofvictory.sln EDITED VCC/surrenderedband/App_Code/vcc/churchWeb/msgPostPage.vb EDITED VCC/surrenderedband/Global.asax.vb EDITED VCC/surrenderedband/surrenderedband.sln EDITED VCC/victorypeople/App_Code/calendar.vb EDITED VCC/victorypeople/App_Code/control.vb EDITED VCC/victorypeople/App_Code/dbTable.vb EDITED VCC/victorypeople/App_Code/document.vb EDITED VCC/victorypeople/App_Code/editPage.vb EDITED VCC/victorypeople/App_Code/email.vb EDITED VCC/victorypeople/App_Code/image.vb EDITED VCC/victorypeople/App_Code/input.vb EDITED VCC/victorypeople/aboutUs/staff.aspx.vb EDITED VCC/victorypeople/aboutUs/staffProfile.aspx.vb EDITED VCC/victorypeople/admin/eventSeries-edit.aspx.vb EDITED VCC/victorypeople/admin/recordedevent-edit.aspx.vb EDITED VCC/victorypeople/admin/recording-edit.aspx.vb EDITED VCC/victorypeople/bin/V73.Common.dll EDITED VCC/victorypeople/bin/V73.Common.xml EDITED VCC/victorypeople/bin/VCC.dll EDITED VCC/victorypeople/bin/Web.dll EDITED VCC/victorypeople/contactUs/eventSignup.aspx.vb EDITED VCC/victorypeople/contactUs/guestbook.aspx.vb EDITED VCC/victorypeople/contactUs/index.aspx.vb EDITED VCC/victorypeople/index.aspx.vb EDITED VCC/victorypeople/ministries/index.aspx.vb EDITED VCC/victorypeople/news/announcements.aspx.vb EDITED VCC/victorypeople/news/calendar.aspx.vb EDITED VCC/victorypeople/news/calendarday.aspx.vb EDITED VCC/victorypeople/news/calendaritem.aspx.vb EDITED VCC/victorypeople/news/events.aspx.vb EDITED VCC/victorypeople/resources/links.aspx.vb EDITED VCC/victorypeople/resources/podcast.aspx.vb EDITED VCC/victorypeople/test.aspx.vb EDITED VCC/victorypeople/test2.aspx.vb EDITED VCC/victorypeople/victorypeople.sln


anonymous added on 2010-06-24 17:41:51:
I am having the same problem on Windows XP using fossil version "[15b293259d] 2010-06-11 12:02:59 UTC".


anonymous claiming to be RBerteig added on 2010-06-24 21:41:03:
I've had a similar problem when checking in source code to a project that was still open in its IDE. After exiting the IDE, the check in completed without a hitch. My conjecture is that the IDE (Microchip's MPLAB in this case) was keeping some of its workspace files in flux as long as the project was open.

I haven't attempted to diagnose this in more detail, since the simple rule of closing the project before doing the final check in and wrapping up a delivery bundle fit well enough into my workflow.


benoit added on 2010-06-25 07:54:39:
I had a similar problem today.

Under Windows, file names are case insensitive. I had zipped a part and unzipped it with another software, which had messed up case in file names.

Maybe you had the same issue.


anonymous claiming to be honesthacker added on 2010-06-29 14:24:52:
I had the same issue on Windows XP. I created a new repository, opened it, copied files and directories from another Windows location (nothing zipped or copied from UNIX), added them and committed. Then I made some modifications to some files and couldn't commit them due to this error.


anonymous added on 2010-11-13 10:21:37:
Hello!

Today I've put Fossil under some unusual 'stress' using it to handle all the files I used for a video project done in Cinelerra.

At the end, when I wanted to store everything in Fossil repo, I had instance of the subject's message, but even repeated attempt to commit everything did not succeed.

Here is the snippet from the terminal:

[gour@atmarama kartika] fossil  stat  
repository:   /home/gour/repos/fossil/kartika.fossil
local-root:   /home/gour/video/mama/kartika/
server-code:  4a68b14db6318b3979e3a68925a4cc5eee2f04c5
checkout:     b80adf5577f7b54fc658889e3ed73132761d225d 2010-11-13 08:59:00 UTC
parent:       2f766c14db19ef657b1d2a359d7bc5958de0a238 2010-11-13 08:44:03 UTC
tags:         trunk
comment:      oil-painting effect at the end (user: gour)
ADDED      Kartika-2.mpeg2video
DELETED    Kartika.osp
ADDED      audio/Prayers_to_the_Six_Gosvamis.mp3
ADDED      dvd/VIDEO_TS/VIDEO_TS.BUP
ADDED      dvd/VIDEO_TS/VIDEO_TS.IFO
ADDED      dvd/VIDEO_TS/VIDEO_TS.VOB
ADDED      dvd/VIDEO_TS/VTS_01_0.BUP
ADDED      dvd/VIDEO_TS/VTS_01_0.IFO
ADDED      dvd/VIDEO_TS/VTS_01_0.VOB
ADDED      dvd/VIDEO_TS/VTS_01_1.VOB
ADDED      dvdwizard.cmd
ADDED      dvdwizard.xml
ADDED      kartika.ac3
ADDED      kartika.m2v
ADDED      kartika.mpeg
[gour@atmarama kartika] fossil ci
emacsclient "/home/gour/video/mama/kartika/ci-comment-DFE0F3EE390F.txt"
Waiting for Emacs...

You need a passphrase to unlock the secret key for
user: "Gour D. <gour@atmarama.net>"
4096-bit RSA key, ID CDBF17CA, created 2010-07-14

gpg: writing to `in-25E14E727C32D22DEC2B'
gpg: RSA/SHA1 signature from: "CDBF17CA Gour D. <gour@atmarama.net>"
New_Version: 6873ebb458aa2b5785a4b54a91c09917fdd4f104
fossil: tree checksums before and after commit do not match
[gour@atmarama kartika] fossil  stat
repository:   /home/gour/repos/fossil/kartika.fossil
local-root:   /home/gour/video/mama/kartika/
server-code:  4a68b14db6318b3979e3a68925a4cc5eee2f04c5
checkout:     b80adf5577f7b54fc658889e3ed73132761d225d 2010-11-13 08:59:00 UTC
parent:       2f766c14db19ef657b1d2a359d7bc5958de0a238 2010-11-13 08:44:03 UTC
tags:         trunk
comment:      oil-painting effect at the end (user: gour)
ADDED      Kartika-2.mpeg2video
DELETED    Kartika.osp
ADDED      audio/Prayers_to_the_Six_Gosvamis.mp3
ADDED      dvd/VIDEO_TS/VIDEO_TS.BUP
ADDED      dvd/VIDEO_TS/VIDEO_TS.IFO
ADDED      dvd/VIDEO_TS/VIDEO_TS.VOB
ADDED      dvd/VIDEO_TS/VTS_01_0.BUP
ADDED      dvd/VIDEO_TS/VTS_01_0.IFO
ADDED      dvd/VIDEO_TS/VTS_01_0.VOB
ADDED      dvd/VIDEO_TS/VTS_01_1.VOB
ADDED      dvdwizard.cmd
ADDED      dvdwizard.xml
ADDED      kartika.ac3
ADDED      kartika.m2v
ADDED      kartika.mpeg
EDITED     kartika.xml
[gour@atmarama kartika] fossil ci   
emacsclient "/home/gour/video/mama/kartika/ci-comment-DCF36188F702.txt"
Waiting for Emacs...

You need a passphrase to unlock the secret key for
user: "Gour D. <gour@atmarama.net>"
4096-bit RSA key, ID CDBF17CA, created 2010-07-14

gpg: writing to `in-6CFD19013B265AF9F89D'
gpg: RSA/SHA1 signature from: "CDBF17CA Gour D. <gour@atmarama.net>"
New_Version: 98454745ae3c37b22a11f6471ff2f75bff4ee4fb
[gour@atmarama kartika] fossil  stat
repository:   /home/gour/repos/fossil/kartika.fossil
local-root:   /home/gour/video/mama/kartika/
server-code:  4a68b14db6318b3979e3a68925a4cc5eee2f04c5
checkout:     98454745ae3c37b22a11f6471ff2f75bff4ee4fb 2010-11-13 10:00:38 UTC
parent:       b80adf5577f7b54fc658889e3ed73132761d225d 2010-11-13 08:59:00 UTC
tags:         trunk
comment:      complete project (audio, video, dvd…) (user: gour)
EDITED     dvd/VIDEO_TS/VTS_01_1.VOB
EDITED     kartika.mpeg
[gour@atmarama kartika] ls -al ~/repos/fossil 
total 1,9G
drwxr-xr-x 2 gour 4,0K Nov 13 11:01 .
drwxr-xr-x 7 gour 4,0K Nov  8 13:07 ..
-rw-r--r-- 1 gour  88K Nov 11 15:16 aur.fossil
-rw-r--r-- 1 gour 3,9M Nov 11 15:34 bhagavad-gita-seminar.fossil
-rw-r--r-- 1 gour 689K Nov 11 15:43 cfgfiles.fossil
-rw-r--r-- 1 gour 1,8G Nov 13 11:01 kartika.fossil
-rw-r--r-- 1 gour  70K Nov 13 09:07 mama.fossil
-rw-r--r-- 1 gour  77K Nov 12 17:32 org.fossil
-rw-r--r-- 1 gour 3,4M Nov 11 15:40 sqlite-books.fossil
[gour@atmarama kartika] fossil help
Usage: fossil help COMMAND.
Available COMMANDs:
add            co             import         redo           tag          
addremove      commit         info           remote-url     ticket       
all            configuration  init           rename         timeline     
annotate       deconstruct    leaves         revert         ui           
artifact       delete         ls             rm             undo         
branch         descendants    merge          scrub          unset        
cgi            diff           mv             search         update       
changes        export         new            server         user         
checkout       extras         open           settings       version      
ci             finfo          pull           sha1sum        wiki         
clean          gdiff          push           sqlite3        zip          
clone          help           rebuild        status       
close          http           reconstruct    sync         
This is fossil version [ceab53718f] 2010-11-12 16:37:37 UTC
[gour@atmarama kartika] fossil changes
EDITED     dvd/VIDEO_TS/VTS_01_1.VOB
EDITED     kartika.mpeg
[gour@atmarama kartika] fossil ci            
emacsclient "/home/gour/video/mama/kartika/ci-comment-40B3CFC75419.txt"
Waiting for Emacs...

You need a passphrase to unlock the secret key for
user: "Gour D. <gour@atmarama.net>"
4096-bit RSA key, ID CDBF17CA, created 2010-07-14

gpg: writing to `in-97E6EDA8FDA97AC9AD9D'
gpg: RSA/SHA1 signature from: "CDBF17CA Gour D. <gour@atmarama.net>"
New_Version: 9ebf6d08b2dd0d258fc7bd5a3c60c17087528b18
[gour@atmarama kartika] fossil changes
EDITED     dvd/VIDEO_TS/VTS_01_1.VOB
EDITED     kartika.mpeg
[gour@atmarama kartika] fossil diff   
Index: dvd/VIDEO_TS/VTS_01_1.VOB
===================================================================
--- dvd/VIDEO_TS/VTS_01_1.VOB
+++ dvd/VIDEO_TS/VTS_01_1.VOB
cannot compute difference between binary files

Index: kartika.mpeg
===================================================================
--- kartika.mpeg
+++ kartika.mpeg
cannot compute difference between binary files

From the above it's visible that 2 files (dvd/VIDEO_TS/VTS_01_1.VOB and kartika.mpeg) cannot be properly checked-in.

Sincerely,
Gour


anonymous claiming to be gour added on 2010-11-13 13:13:24:
I've tried with [64459dd091] but still cannot resolve the issue:

[gour@atmarama kartika] fossil version
This is fossil version [64459dd091] 2010-11-13 12:48:00 UTC
[gour@atmarama kartika] fossil stat
repository:   /home/gour/repos/fossil/kartika.fossil
local-root:   /home/gour/video/mama/kartika/
server-code:  4a68b14db6318b3979e3a68925a4cc5eee2f04c5
checkout:     9ebf6d08b2dd0d258fc7bd5a3c60c17087528b18 2010-11-13 10:03:37 UTC
parent:       98454745ae3c37b22a11f6471ff2f75bff4ee4fb 2010-11-13 10:00:38 UTC
tags:         trunk
comment:      finished project (user: gour)
EDITED     dvd/VIDEO_TS/VTS_01_1.VOB
EDITED     kartika.mpeg
[gour@atmarama kartika] fossil ci
emacsclient "/home/gour/video/mama/kartika/ci-comment-ED1E5806ACDF.txt"
Waiting for Emacs...

You need a passphrase to unlock the secret key for
user: "Gour D. <gour@atmarama.net>"
4096-bit RSA key, ID CDBF17CA, created 2010-07-14

gpg: writing to `in-AD2FD4A375B206FB0DBD'
gpg: RSA/SHA1 signature from: "CDBF17CA Gour D. <gour@atmarama.net>"
New_Version: c353967e8ecbce7f64589b6eea2cdfcb9333a8a7
[gour@atmarama kartika] fossil stat
repository:   /home/gour/repos/fossil/kartika.fossil
local-root:   /home/gour/video/mama/kartika/
server-code:  4a68b14db6318b3979e3a68925a4cc5eee2f04c5
checkout:     c353967e8ecbce7f64589b6eea2cdfcb9333a8a7 2010-11-13 13:10:04 UTC
parent:       9ebf6d08b2dd0d258fc7bd5a3c60c17087528b18 2010-11-13 10:03:37 UTC
tags:         trunk
comment:      another attempt to checkin latest complete project (user: gour)
EDITED     dvd/VIDEO_TS/VTS_01_1.VOB
EDITED     kartika.mpeg

anonymous claiming to be achavasse added on 2010-11-13 14:54:41:
I've had a similar issue when using fossil in windows and tracked down the cause: I had replaced a file in the working directory by another similar file found elsewhere in the tree.

They didn't have the same content or size, but it seems when you do that windows copies over the modification date of the file (at last when you do it using the explorer), because the original file had the same modification time as the one I replaced.

So the mtime check led fossil to believe the file hadn't changed and it didn't include it in the commit. Then when it compared the checksum of the files in the commit (including the old version of that file mentioned above) to the working directory which contained the latest version, the checksum didn't match.

As a workaround, it is possible to disable mtime check with "fossil set mtimes-changes 0".