Re: ecpg and bison again - Mailing list pgsql-hackers

From Thomas Lockhart
Subject Re: ecpg and bison again
Date
Msg-id 3D15DC9A.4766461D@fourpalms.org
Whole thread Raw
In response to ecpg and bison again  (Michael Meskes <meskes@postgresql.org>)
List pgsql-hackers
> > I'm happy setting up the branch if that would be helpful. Let me know if
> > this is the way you want to proceed, and if so what you would like the
> That would be nice. I do not really knwo cvs myself.

Done. And here is how you would use it...

> > branch to be called.
> No idea. "new-bison" maybe?

OK, the tag name is "ecpg_new_bison" (note the underscores; dashes are
not allowed afaicr).

I created the branch *only* on src/interfaces/ecpg. To get ready to work
on the branch, you will want to update your entire tree:

cvs update -PdA pgsql

If you have uncommitted changes to code cvs will respect that and
preserve the changes, but you may want to make a tarball just in case ;)

Then, update *only* the ecpg source directory to the branch:

cd pgsql/src/interfaces
cvs update -r ecpg_big_bison ecpg

At that point, *all* cvs files in your ecpg directory will be living on
the branch. If you make changes and commit them, the changes will only
be visible on the branch. The branch tag is "sticky", so *unless* you
explicitly change the tag or branch by, say, an unfortunate "update -A"
or "update -rHEAD" then all files and any new files will stay on the
branch.

Since the tag is only on the src/interfaces/ecpg directory, if you
accidentally try updating other directories to that tag the files may
"vanish", since they do not have that tag. Update those directories back
to the head and the files will reappear.

You can easily work on both the HEAD and ecpg_big_bison by renaming your
already-branched ecpg directory to, say, ecpg.big, then doing

cd pgsql/src/interfaces
cvs update -PdA ecpg

which will recover files from the tip of the cvs tree. You would then
have two directories, ecpg/ and ecpg.big/, and the sticky tags in
ecpg.big/ will be respected by CVS and will still refer to the correct
branch of ecpg/ within the CVS repository.

If you commit changes to the tip which you want to pull up to the
branch, use

cd pgsql/src/interfaces
# name may be ecpg/ if you have a completely separate tree
cvs update -j HEAD ecpg.big

which will merge changes from HEAD (the cvs tip) into your source
directory. You would still need to commit them to have them in the
repository:

cd pgsql/src/interfaces
cvs commit ecpg.big

When it comes time, you will want to merge your branch back down to the
main tree. You can do this as was done above for the other direction:

cd pgsql/src/interfaces
cvs update -j ecpg_big_bison ecpg

where the ecpg directory is, as described above, already on the cvs tip.

Let me know if you have any questions!
                   - Thomas


pgsql-hackers by date:

Previous
From: Curt Sampson
Date:
Subject: Re: Index Scans become Seq Scans after VACUUM ANALYSE
Next
From: Thomas Lockhart
Date:
Subject: Re: ecpg and bison again