[darcs-users] BIG Mistake

Jorey Bump list at joreybump.com
Tue Nov 7 15:14:41 UTC 2006


Jamie Webb wrote:
> On Mon, Nov 06, 2006 at 12:33:58PM -0500, Jorey Bump wrote:
>> I have a nice little repository of source code to which I added a huge directory of binary resources. I then worked on 
>> several revisions of the source code and decided that I didn't need the binaries, after all. None of the source code is 
>> dependent on the existence of the binary files in any of the revisions. Unfortunately, this leaves me with a HUGE 
>> repository for what was once efficient text. How can I erase all evidence of the unused directory containing the 
>> binaries without losing my record of changes? Is there a simple way to do this, or must I pull up to the unwanted patch 
>> and repeat the process, copying only the desired code and recording the patches with each step?
> 
> If there are no dependencies, you can just 'darcs obliterate' the
> patch in which you added the binaries. Otherwise, yes you'll need to
> remove the depending patches too and re-record them.

I've tried this out on a test repository with the following patches:

Initial import
Revision 1
Revision 2
Revision 3
Add BIG binary directory
Revision 4
Revision 5

I ran this command:

  darcs obliterate -p "Add BIG binary directory"

After consuming most of my memory and swap space for over an hour (but 
not using much CPU), it finally finished. It removed the big directory 
from both my working copy and _darcs/current, but it didn't remove the 
actual patch file. The patch no longer appears in changes:

Initial import
Revision 1
Revision 2
Revision 3
Revision 4
Revision 5

Is it safe to  delete the corresponding (and huge) patch file, now?

Also, this procedure was so memory intensive, it made my workstation 
almost unusable. I can offload the repository to another machine for 
processing, but could I have achieved the same thing by simply deleting 
the large patch, removing the directory from working & current, and 
deleting the corresponding line from _darcs/inventory? Once again, we're 
assuming there are no dependencies.






More information about the darcs-users mailing list