CVSQ-BRANCH(1)

πŸ“¦ version 1.11, in nixos 26.05, nixpkgs unstable

πŸ’– 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 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. πŸ—‚οΈ
  • ~/.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