Notes for CVS Converts
- From
Jon Loeliger <jdl@freescale.com>
- Date
- Aug 31, 2005, 19:08 UTC
- Message-ID
- <1125515315.13577.53.camel@cashmere.sps.mot.com>
Guys,
I was recently bitten by a cg-rm behavior where it silently Did The Wrong Thing, IMO. I think that other CVS Converts might stumble across the same pitfall, so it might warrant a comment in the documentation, perhaps in the "Notes For CVS Users" section.
I am in the process of doing some file merging, resulting in some files being eliminated from my source tree. But I wasn't prepared to just out-right delete my original files until some testing had been completed first. So I moved my files out of the way so the build would proceed without them.
Later, when I was satisfied the build was good, I executed a "cg-rm floof/somefile.h" and then cg-commit'ed them. However, I realized, they were not actually removed from the cache.
Reading through "cg-rm", I figured out that it expected to actually rm the files from the filesystem after first proving they existed with a "find". That in turn also drove the "git-cache-update --force-remove".
However, in my case I had already moved/removed the original files. The "find" didn't find them and the cache update didn't happen. And no output was generated either. But I thought nothing of it; after all, "rm" doesn't produce output when it works successfully.
So two possible suggestions here:
First, perhaps cg-rm should issue a warning if the generated temporary file results in an empty list of files to be removed (and then maybe with a --silent option subsequently?),
Secondly, maybe the documentation needs a section with "Notes for CVS Converts" section that clearly states that cg-rm _expects_ to actually remove the file from the filesystem, directly opposite the normal CVS behavior.
Thanks, jdl