zsh-workers
 help / color / mirror / code / Atom feed
From: "Bart Schaefer" <schaefer@candle.brasslantern.com>
To: Zsh hackers list <zsh-workers@sunsite.auc.dk>
Subject: Re: CVS (slightly off-topic)
Date: Wed, 8 Sep 1999 17:26:10 +0000	[thread overview]
Message-ID: <990908172610.ZM13625@candle.brasslantern.com> (raw)
In-Reply-To: <19990908114038.B20503@thelonious.new.ox.ac.uk>
In-Reply-To: <19990908154421.A18378@caerdonn.eurocontrol.fr>

On Sep 8, 11:40am, Adam Spiers wrote:
} Subject: Re: CVS (slightly off-topic)
}
} On the subject of CVS, I've been trying to get my head around (vendor)
} branches and have been wondering what the best strategy would be for
} using CVS to track changes.  I know that several of you are already
} doing this; would you mind briefly detailing what strategy you use?

I have two repositories, one for zsh-3.0 and one for zsh-3.1.

I import full releases (e.g. 3.0.5, 3.0.6, 3.1.5, 3.1.6) on the standard
vendor branch with vendor tag "zsh-workers".

I import the pws-XX releases onto a second vendor branch with vendor tag
"pws".  I wrote a zsh function wrapper around the cvs command that checks
the vendor tag name and inserts the appropriate -b option so that I can't
accidentally import onto the standard vendor branch, which is the primary
problem with using more than one vendor branch.

(That wrapper function does other things like execute "rm -i" if I try to
"cvs remove" a file that still exists, and always use "cvs -n" with the
"diff" subcommand, and so forth.)

I apply patches to the main trunk as they appear on zsh-workers, and make
any changes of my own there as well.  Immediately after importing, I merge
in the pws-XX changes with e.g.

	cvs update -d
	cvs update -jzsh-3-1-6-pws-2 -jzsh-3-1-6-pws-3

The first update is to pick up any completely new files/directories,
which merging doesn't always accomplish.  Using explicit revision tags
in the update -j -j produces *much* better merges than does the stupid
"yesterday" suggestion that's spat out at the end of the import.

Then I resolve conflicts reported by the merge (ignore conflicts reported
by import, they're mostly useless) and run e.g.

	cvs diff -u -rzsh-3-1-6-pws-3

to check whether I have patches that Peter may have missed or that should
not have been included.  I resolve anything reported by the diff, then
"cvs commit", and now I'm ready to start applying patches off the list
again.

} If you wanted to merge in changes from the anon CVS to your own
} repository, would you have to update your working copy of the anon
} CVS and then `cvs import' your working copy into your own development
} repository, or is there a better way?

There are assorted tools for keeping two repositories in sync, but none
of them do much more than help you automate the process.  You don't have
to import, of course; you can check out two sandboxes (one from the anon
repository, one from your own), and "cp" files back and forth between
the sandboxes, doing updates and/or commits on whichever side is out of
date.  In that case it's good to make some helper scripts to prevent you
from copying a file over the top of one you've changed but not committed.

(You can't "cvs import" your own working copy; I believe cvs refuses to do
an import in a directory that has CVS/ subdirectories.  What you'd do is
"cvs export" from the anon server to a clean tree, then "cvs import" that,
and finally merge into your sandbox with update -j -j as I described.)

On Sep 8,  3:44pm, Ollivier Robert wrote:
} Subject: Re: CVS (slightly off-topic)
}
} There is only one vendor branch.

I don't want turn zsh-workers into the info-cvs list, but:

	cvs import -b 1.1.N ...

for any odd number N greater than 1, creates another vendor branch.  As
I said, you then have to remember to explicitly add that -b option every
time you want to import to that branch; the vendor tag name is not used
by cvs itself, though you're required to provide one.

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com


  reply	other threads:[~1999-09-08 17:26 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-09-06 10:19 3.1.6-pws-3 Peter Stephenson
1999-09-06 11:18 ` 3.1.6-pws-3 Andrej Borsenkow
1999-09-07 16:29 ` 3.1.6-pws-3 Bart Schaefer
1999-09-08  9:00   ` CVS Peter Stephenson
1999-09-08 10:40     ` CVS (slightly off-topic) Adam Spiers
1999-09-08 13:44       ` Ollivier Robert
1999-09-08 17:26         ` Bart Schaefer [this message]
1999-09-08 20:03           ` BK & " Wayne Davison
1999-09-08 22:30             ` Bart Schaefer
1999-09-09  0:01               ` Wayne Davison
1999-09-09  7:44             ` Ollivier Robert
1999-09-09 19:01               ` Wayne Davison
1999-09-16 15:46       ` Adam Spiers
1999-09-18  7:04         ` Bart Schaefer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=990908172610.ZM13625@candle.brasslantern.com \
    --to=schaefer@candle.brasslantern.com \
    --cc=zsh-workers@sunsite.auc.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).