CVSQ-BRANCH(1)
π NAME π
okay so bestie, this is the CVSQ-BRANCH(1) manual page for cvsq-branch β the iconic little script that makes a failed commit work by sending it to a branch. β¨ no cap, thatβs the whole vibe.
β¨ SYNOPSIS β¨
cvsq-branch
π¦ 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 directories of the merge still to be done. The tag identifying the branch is cvsq-branch-<unique_identifier>, with the same identifier as left in the working directory. π
β οΈ NOTE β οΈ
After calling cvsq-branch a call of cvsq up is needed to do the actual upload to the branch! π«Ά donβt skip this, bestie β this note is highkey important, fr fr.
π₯ 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 <new-slot>-backup. Then a new branch name is generated and in the actual working directory cvs tag <tag>-start, cvs tag -b <tag> and cvs update -r<tag> 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 are scheduled. π
- move the working directory to
~/.cvsq-branch/backup/<tag> - copy the backup copy in the data directory to the old place of the working directory
- enter the restored working directory and call
cvs update - create add and commit a file named
.<tag>
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!). π
π FILES π
~/.cvsq/β the directory thatcvsqstores the queue of the commands to be executed. Seecvsq-files(5)for a description of the file structure and how to schedule commands other than by callingcvsq. ποΈ~/.cvsq-branch/backupβ 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. π
π SEE ALSO π
cvsq-merge(1), cvsq(1), cvs(1), cvsq-files(5) π¦
π AUTHOR π
Klaus Aehlig <aehlig@linta.de> π
mwah π this iconic page is from the CVSQ-BRANCH(1) source/version, dated April 24, 2007. bye bestie, go slay your merge β periodt π«Άβ¨
π¦ where this page comes from
- nixos 26.05: cvsq 1.11
- nixpkgs unstable: cvsq 1.11
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms