Allow a -D'date' option to be included with a -r'branch'

on a checkout.
this allows us to do:
cd /usr/src/sys
cvs update -rRELENGE_2_2 -D"Yesterday"
which has been a feature sorely needed for any project with active branches.

warning: this breaks on usr.sbin/pkg_install for some reason.
everything else works as advertised.
(other things allready break on pkg_install, so it's not the fault of
this patch, it just falls faul of another bug somewhere)
If I had more time I'd make -r always accept the same syntax as -j (tag:data)
This commit is contained in:
julian 1998-01-12 06:51:07 +00:00
parent 94982c0d65
commit 993698cd4d
2 changed files with 4 additions and 4 deletions

View File

@ -1857,9 +1857,9 @@ RCS_getdatebranch (rcs, date, branch)
free (xbranch);
if (p == vers->branches->list)
{
/* FIXME: This case would seem to imply that the RCS file is
somehow invalid. Should we give an error message? */
return (NULL);
/* This happens when you have a couple of branches off a revision,
and your branch has not diverged, but another has. */
return (xstrdup (cur_rev));
}
p = findnode (rcs->versions, p->key);

View File

@ -491,7 +491,7 @@ update_fileproc (callerdat, finfo)
&& tag != NULL
&& finfo->rcs != NULL)
{
char *rev = RCS_getversion (finfo->rcs, tag, NULL, 1, NULL);
char *rev = RCS_getversion (finfo->rcs, tag, date, 1, NULL);
if (rev != NULL
&& !RCS_nodeisbranch (finfo->rcs, tag))
nonbranch = 1;