Notes for CVS Converts
From: Jon Loeliger <hidden>
Date: 2016-06-15 22:42:05
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