Aborted commits causing integrity errors.
Reported by Michael Edgar | November 28th, 2009 @ 01:39 PM
Reproduction:
amp init commitbackout
cd commitbackout
echo "hi" > a.txt
amp add a.txt
amp commit -m "first"
echo "hi" >> a.txt
amp commit # then CANCEL when your editor opens, giving a blank commit message
amp verify
resulting in:
michaeledgar:~/repotests/commitbackout $ amp verify
status: checking changelog...
status: checking manifests...
manifest@?: revision 1 points to nonexistent changeset 1
status: crosschecking files in changesets and manifests
status: checking files
a.txt@?: revision 1 points to nonexistent changeset 1
warning: (expected 0)
1 files, 1 changesets, 2 revisions
2 integrity errors, 1 warnings.
An aborted commit still results in the manifest being written as well as the associated file logs.
My best guess is that we are catching the abort and then for some reason, continuing on with the commit. Which is silly.
Comments and changes to this ticket
-

seydar November 28th, 2009 @ 04:25 PM
I saw some code in revlog.rb (Revlog#add_group) that catches exceptions and merely prints them but doesn't fail. Should it fail?
-

Michael J. Edgar November 28th, 2009 @ 07:33 PM
- State changed from new to resolved
- Tag cleared.
Re-implemented rollbacks (whoops!). Issue resolved.
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป
Rethink Version Control.- http://amp.carboni.ca/
Amp aims to put control of version-control software in your hands as a developer. The entire system is written in Ruby (with C extensions to improve performance), and aims to implement all major VCS's in Ruby. Currently, Mercurial is implemented.
Other features:
Commands are first-class members of the system - drop in an "Ampfile" in your repository, and you can add commands to amp in the same manner you add commands to rake (only with far, far more power!)
Documentation is one of our biggest priorities. We require all methods to be documented - even comically simple ones.
Heavy testing.
Multiple "workflows" - use git's commands to power a mercurial repository.
Add hooks/callbacks in minutes.