I'm sure many of us have added a file on a branch such that the file only exists on the branch and exists on the trunk as a dead revision. While trying to set up a test case to diagnose a problem a developer was having, I tried the following: 1. Created a test repository. 2. Created a working directory. 3. Checked out the root directory non-recursively. Now at this point I wanted to add a file, but only on a branch. I wanted a dead revision on the trunk. >From what I can tell it isn't possible via the standard CVS commands. The only way that a file can be added on a branch is if there exists a file on that branch. Having that first file allows you to update to the branch. The consequence of updating to the branch is that the CVS/Tag file is created in the working directory with the name of the branch to commit to. At that point when you create a file, add it, and commit it, the RCS file for the added file is created in the Attic with a dead revision on the trunk and the file as it was added on the branch revision. I just had a possible way to do it. (just a sec) Ok. You can do it by manually creating CVS/Tag containing "Tbranchtag" where "branchtag is the tag you want to add the file on. Or. You can add the tag you want to add files on to $CVSROOT/CVSROOT/val-tags by adding a line of the format "branchtag y". So, since the only thing that seems to matter is whether or not the tag exists in val-tags, then shouldn't there be a way to manage valid tags? Maybe something to validate val-tags? Admittedly, I doubt this concerns anyone. I just thought that it was odd to require a file be already on a branch before adding new files to the branch. Shane Turner
