Fossil SCM
tree checksum does not match repository after commit
a483f0ab3f0d4da…
· opened 15 years, 10 months ago
- Type
- Code_Defect
- Priority
- Medium
- Severity
- Critical
- Resolution
- Rejected
- Subsystem
- —
- Created
- June 7, 2010 1:37 a.m.
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. <[email protected]>"
4096-bit RSA key, ID CDBF17CA, created 2010-07-14
gpg: writing to `in-25E14E727C32D22DEC2B'
gpg: RSA/SHA1 signature from: "CDBF17CA Gour D. <[email protected]>"
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. <[email protected]>"
4096-bit RSA key, ID CDBF17CA, created 2010-07-14
gpg: writing to `in-6CFD19013B265AF9F89D'
gpg: RSA/SHA1 signature from: "CDBF17CA Gour D. <[email protected]>"
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. <[email protected]>"
4096-bit RSA key, ID CDBF17CA, created 2010-07-14
gpg: writing to `in-97E6EDA8FDA97AC9AD9D'
gpg: RSA/SHA1 signature from: "CDBF17CA Gour D. <[email protected]>"
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. <[email protected]>"
4096-bit RSA key, ID CDBF17CA, created 2010-07-14
gpg: writing to `in-AD2FD4A375B206FB0DBD'
gpg: RSA/SHA1 signature from: "CDBF17CA Gour D. <[email protected]>"
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".
Comments (1)
Closing as part of periodic cleanup.