Age | Commit message (Collapse) | Author |
|
GNU cvs but is a little faster.
OK joris@, ray@, xsa@
|
|
in both local and server mode.
OK tobias@
|
|
|
|
Previously, files in the 'Attic/' were linked into our filelist as being
'Attic/filename,v' this caused unneeded stress on certain functions
like cvs_file_classify() who had to do pointer voodoo to split out
the 'Attic/' part and do other very weird stuff to normalize the pathname
of these files.
Instead, we handle these files early in the start when we
build the fileslist in cvs_repository_getdir(). When encountering
the 'Attic/' directory, we recurse in it if required but instead of
using the 'Attic/' directory component as our base directory we stick
with the directory name where 'Attic/' resides in, resulting in the
correct filename while maintaining the correct RCSpath for the file.
This made the following things a lot easier:
(and in most cases actually fixed the below points)
- status with files in Attic/.
- checking out HEAD repositories with files in Attic/.
- checking out repositories with -rTAG.
- updating with -rTAG.
and as an added bonus the following now also works:
- correctly creating CVS/Tag in both local and remote mode thus
allowing update/status/and more to work correctly with the tagged tree.
(thanks to the correct handling of -rTAG cases).
- resetting tags with opencvs -A properly works too now.
This is a major step forward into the usability
of OpenCVS when it comes to maintaining multiple tagged trees, the next
logical step would be to fix commiting to branches.
enjoy you -stable cowards.
tested by myself, xsa, niallo and ckuethe
thanks guys!
|
|
Simplifies further size tweaks if needed.
OK niallo@ ray@.
|
|
cvs co -rOPENBSD_3_0 works now.
along the way, simplify and rationalise code and fix a few nits.
ok joris@ xsa@ ray@
|
|
original pointer. Theo agrees, and so does the rest of the tree
(ssh, etc. all do this already).
Saves a bunch of variables and assignments.
OK niallo@
|
|
also add check for strftime return in date keyword parsing while here.
requested by jmc@, ok ray@
|
|
|
|
things. now gcc -Wall and lint are more happy. ok joris@ xsa@
|
|
ignored. ok xsa@ joris@
|
|
file and then rename. Avoids inter-filesystem copy and fixes a
potential rcs file truncation when the target fileystem becomes full.
While there, use fchmod instead of chmod. ok xsa@ joris@
|
|
|
|
- do not let the file keyword expension options (-k) disappear
from the Entries file when doing a commit/update/checkout
- be sure the expension mode gets written to the RCS file when a file
is added/committed in the first place
problems raised by otto@; tests/ok otto@ and joris@.
|
|
not mistakenly see a file as Modified while it is not.
As a result, we can remove the very hackish cvs_hack_time() and
GNU cvs and opencvs should almost get along now.
lotsa help and okay The otto@
|
|
niallo@
|
|
ok joris@
|
|
tested & found brad@
|
|
so that we do keyword expansion on-the-fly if required instead
of obtaining the revision in memory first, running over the revision
lines while expanding keywords and only then writing them to the fd
or memory buffer.
this drasticly decreases cpu usage by opencvs on very large trees (like src).
OK niallo@
|
|
discussed with niallo@
|
|
and caused opencvs to crash so revert, oops?
|
|
- correclty use cvs_tagname, so that the tag from $CVSROOT/config
will actually be expanded as a keyword.
|
|
in some places and much
reduced memory usage. note that only checkout has been fully converted to use the new high-performance
functions. other codepaths (e.g. update) still use the old method which is provided for backwards
compatibility. we can convert the remaining slow bits over to the new api piece-by-piece.
"commit this, now" joris@
brad@ tested, too.
|
|
ok niallo@
|
|
adding/importing binary files now works too
partially taken from openrcs
|
|
all files were ascii,
which broke things in real-world usage. now a checkout of src should work, albeit using lots of
memory and cpu. fixing this is the next step.
testing by many.
ok & some input joris@
|
|
ok joris@ ray@
|
|
ok joris@ ray@
|
|
ok joris@ ray@
|
|
ok ray@
|
|
Add missing checks for EOF when parsing rcs file sections.
by millert@
|
|
OK niallo@
|
|
|
|
always set the temporary file to mode 600, which is already done
by mkstemp().
OK joris@ and xsa@ over a month ago.
|
|
|
|
-D allows you to update a file to matching a specified date:
opencvs up -D "1 hour ago" foobar will take the first matching
revision that was commited 1 hour ago.
|
|
on the branches list does not match the one we are
looking for, it might be further down.
|
|
|
|
- rework rcs_getrev() to correctly support branches
- rework rcs_translate_tag() to correctly translate given symbols or
branches into their matching revisions
- rework rcs_rev_add() to correctly update its 'next' pointers
and insert the new revision in the correct place on the list.
- rework rcs_head_get() to return the latest revision on the default
branch if it has been set or the normal HEAD revision otherwise.
- no longer access the rf_head member of the RCSFILE struct manually,
use the rcs_head_get() function which correctly returns the HEAD
revision, there might be a default branch that has to be used.
- for now, when commiting a new revision reset the default branch.
|
|
export does exactly the same as checkout except it does
not create any administrative (CVS/) directories.
|
|
allows us to completely use branches for diffing, logging,
updating, etc..
more branches support coming up!
|
|
in the normal repository, and a way to identify an RCS file in
the Attic in the RCSFILE struct.
will come in handy later on.
|
|
revision or symbol given to us on the command line into
the matching revision in the RCS file (if any);
|
|
if an RCSFILE is dead, will come in usefull later in commands.
|
|
'umask' keyword right now.
|
|
|
|
this for the past 2 weeks now and it should go in at
the start of the hackathon so others can help out.
this code is a lot safer, smarter, faster and best of
all it is actually doing what it is suppose to do!
basic checkout, update, status, diff and commit are
working in local mode only.
there is no support for any remote setups now.
|
|
increased and thus no progress could be made in the loop.
bug noticed in rcsdiff(1) by sturm@
ok joris@
|
|
|
|
|