[cvsnt] How to shrink big binary file?

Bo Berglund bo.berglund at telia.com
Thu May 22 23:10:31 BST 2008


Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.


On Thu, 22 May 2008 12:41:41 -0500, Glen Starrett
<glen.starrett at march-hare.com> wrote:

>Hi Bo,
>
>Bo Berglund wrote:
>> Is there another way?
>
>If you want to keep the history around then none that I can think of. 
>The disadvantage is that the history isn't contiguous (e.g. Tortoise 
>won't see the full concatenated history for the file).
>
>> 
>> Could we use a cvsnt rename command to rename the file to main.old1.exe
>> from the client and then cvs add a new main.exe thus getting a small RCS
>> file?
>
>Yes.  Be sure to use the latest available, we've fixed some issues in 
>the rename code working toward our new commercial release.  You might 
>not be affected by those cases, and I don't think any caused anything 
>serious as data loss at any rate.

In my home system I am running 2.5.04.2471 and at work 2.5.03.2382

>> 
>> Is it possible to cvs add a file in a module where there has once lived
>> a file by the same name, which has later been cvs renamed to something
>> else?
>
>Yes.  The RCS file will get a slightly different name automagically. 
>Run a quick test and you'll see how it works:

Did that and indeed there are two separate RCS files.

>
>cvs add Bo.txt
>cvsnt server: scheduling file `Bo.txt' for addition
>cvsnt server: use 'cvsnt commit' to add this file permanently
>
>cvs ci -m ""
>cvs commit: Examining .
>RCS file: /test2/junk/ren_test/Bo.txt,v
>done
>Checking in Bo.txt;
>/test2/junk/ren_test/Bo.txt,v  <--  Bo.txt
>initial revision: 1.1
>done
>
>cvs ren Bo.txt Bo.old.txt
>cvs rename: Warning: rename is still experimental and may not behave as 
>you would expect

I noted here that cvs actually cahnged the name of the sandbox file as
requested. :-)

>cvs ci -m ""
>cvs commit: Examining .
>cvsnt server: Examining .
>/test2/junk/ren_test/.directory_history,v  <--  directory update
>new revision: 1.7; previous revision: 1.6
>done
>
>echo New Hi > Bo.txt
>
>cvs add Bo.txt
>cvsnt server: scheduling file `Bo.txt' for addition
>cvsnt server: use 'cvsnt commit' to add this file permanently
>
>cvs ci -m ""
>cvs commit: Examining .
>RCS file: /test2/junk/ren_test/Bo.txt_1,v
>done
>Checking in Bo.txt;
>/test2/junk/ren_test/Bo.txt_1,v  <--  Bo.txt
>initial revision: 1.1
>done
><<<<
>
>Note that "Bo.txt_1,v" is the new "Bo.txt" RCS file.  Also note that I'm 
>using the latest commercial beta -- I think the recommendation with 2382 
>is that you go to the parent directory and commit the directory with the 
>renamed file in it.
>

Thanks, I have now tested it at home where my test server runs build
2471 (both client and server).
So it seems to work, kindof, but I noted that if I rename the file and
then update to a date well before the file was renamed then it is
still present in the sandbox with the *new* name.

I expected it to revert to the old name when retrieving an old tag or
an old date, but it seems like the rename is permanent also in ancient
history....
So the rename is not fully versioned even though the log will show
that old revisions have a different name than new ones. The old name
simply does not appear when updating to an older snapshot...

Also, when renaming the file it is not marked red in WinCvs and it
will not change its revision when the rename is checked in. Is the
revision stickyness intentional?
I committed the rename on the folder level as you suggested.


HTH

/Bo
(Bo Berglund, developer in Sweden)


More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook