.TH CVSQ-BRANCH 1 "April 24, 2007" "" "" .SH NAME cvsq-branch - make a failed commit work by sending it to a branch .SH SYNOPSIS \fBcvsq-branch\fR .br .SH DESCRIPTION If a cvs commit scheduled by cvsq(1) fails due to a conflict, an easy way to empty the rest of the queue is to send the commit in question to a new branch and merge later. This is precisely what this script does. It assumes that last command that failed in the cvs queue was a commit. It will try to bring the queue in a state that the commit succeeds to a branch and the working directory will at the end be restored and a simple update called. This allows the user to immediately start with merging. It also will leave a file named .cvsq-branch- to remind users in all working directories of the merge still to be done. The tag identifying the branch is cvsq-branch-, with the same identifier as left in the working directory. .SH NOTE After calling \fBcvsq-branch\fR a call of \fBcvsq up\fR is needed to do the actual upload to the branch! .SH MORE DETAILS This section assumes some knowledge about the file structure in the cvs queue, see cvsq-files(5). After calling cvsq-branch, it is first checked that the todo-pre queue is empty. The slot of the failed commit is the least slot (different to 0) in the todo queue. The working directory is stored in the dirnames directory for the appropriate slot. Once the files are identified, a new slot is allocated and a copy of the working directory is stored in -backup. Then a new branch name is generated and in the actual working directory "cvs tag -start", "cvs tag -b " and "cvs update -r" are called. As the commits in the queue refer to their versions via symbolic links to the CVS directories in the working directory, this has the desired effect. Finally in the new slot the following commands a scheduled. .br - move the working directory to ~/.cvsq-branch/backup/ .br - copy the backup copy in the data directory to the old place of the working directory .br - enter the restored working directory and call "cvs update" .br - create add and commit a file named . In the post queue it is scheduled to remove the backup copy in the data directory (not the one in ~/.cvsq-branch/backup, of course!). .SH FILES \fB~/.cvsq/ \fR .br The directory that cvsq stores the queue of the commands to be executed. See cvsq-files(5) for a description of the file structure and how to schedule commands other than by calling cvsq. \fB~/.cvsq-branch/backup\fR .br A directory where in the end a copy of the unmodified working directory will end up. This is useful, if the working directory contained more changes than those scheduled for commit. .SH SEE ALSO .BR cvsq-merge "(1), "cvsq "(1), "cvs "(1), "cvsq-files "(5)" .SH AUTHOR Klaus Aehlig