Age | Commit message (Collapse) | Author |
|
|
|
|
|
our Tag file on the server or in cvs_mkpath(), this caused
problems for the "fast checkout" mechanism when a tag was supplied.
instead, write out any directory sticky tag when we are checking
out a file in that directory, this way we can use our "fast checkout"
mechanism (no /tmp required) even for -r and -d without breaking
working copies because they were missing CVS/Tag files.
"looks good" tobias@
|
|
unless we're running checkout or export.
otherwise we'll end up accidently overwriting it in certain cases
on the client side of things.
|
|
us to maintain multiple hash tables concurrently.
immediatly start using it to keep track of what directories
we have already created and what CVS dirs we already created so
we do not recreate them when we do not need to.
we will be switching more internals to use this soon.
rejoice for cheaper lookups.
ok tobias@
|
|
last opened CVS/Entries around to operate on and close it whenever
we switch directory. gives us a small performance boost, obviously.
while doing this, switch the way we write revisions to disk by
using fwrite(3) so stuff can get written to disk in chunks
instead of writing everything line by line, another win.
with help from otto@
ok tobias@
|
|
which gives us better performance among other things.
this is however disabled in a few cases:
1) whenever you run checkout over an existing tree (which acts as update)
2) whenever you specify -d or a module alias
we're planning on enabling this behaviour for case 2 in the future.
anoncvs sysadmins now love us even more.
ok tobias@
|
|
defined in CVSROOT/commitinfo and CVSROOT/loginfo and so on.
This enables the use of log_accum2 and all that other nice stuff we like.
This was mostly written by Jonathan Armani with help from tobias@ and myself.
ok tobias@
|
|
|
|
|
|
available in empty directories too (containing only "D" then).
ok joris
|
|
specified a CVSROOT using alternate ways (-d or CVSROOT environ variable)
|
|
since we want to make sure we have valid CVS/Repository content
ok tobias@
|
|
directory path to make sure they do not fall outside the CVSROOT
or the working copy directory in a remote setup
|
|
committed files, so keywords are expanded properly.
On client-side, we have to be careful about Directory ./ when it comes
to commits, so add a test for CVS_OP_COMMIT.
OK and help from joris@
|
|
- construct right CVS/Repository paths in cvs_mkpath()
fixes remote Issues;
|
|
OK tobias@.
|
|
|
|
we will definatly need to recreate it with the correct information.
otherwise sucessive checkouts of the same module with other arguments
(like -rOPENBSD_X_X or -D "3 years ago") will not store the correct
information.
|
|
- support for -i flag:
Run "prog" on "cvs commit" from top-level of module.
- fix some memory leaks in modules.c
- pass the line number from cvs_read_config() towards the callbacks
so its easier to print out where it's going wrong, if it ever does.
OK tobias@
|
|
between a named branch and a revision number supplied by -r. This can
be done easier in cvs_write_tagfile directly.
OK joris@
|
|
that are not aliases (-a);
OK tobias@
|
|
ok tobias@
|
|
|
|
checkout is allowed to continue if CVS/Repository does not exist.
export and import are not supposed to open CVS/Repository.
All other commands -- if CVS_USE_WDIR is set -- must fatal if it does
not exist.
OK joris@
|
|
OK xsa@
|
|
remote setups.
OK xsa@
|
|
|
|
|
|
thus making further access to these subdirectories rather difficult.
|
|
OK niallo@
|
|
was okay'd by pyr@ and ok by millert@
|
|
|
|
OK joris@
|
|
numbers better and allows longer command arguments.
OK joris@
|
|
OK joris@
|
|
OK joris@, ray@
|
|
OK joris@
|
|
memory after initializing it.
Initial diff from Igor Zinovik.
OK niallo and xsa.
|
|
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!
|
|
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@
|
|
OK niallo@
|
|
|
|
(From ray's code in sendbug(1))
- nuke cvs_exec() as it is not used anymore
Prompted by deraadt@ a few weeks ago.
OK ray@.
|
|
|
|
things. now gcc -Wall and lint are more happy. ok joris@ xsa@
|
|
functionality w/ xsnprintf(); Initial diff started by thib@.
OK thib@ joris@.
|
|
this fixes a bug where opencvs update would abort if a link existed that
pointed to a non-existent file/dir
ok 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@
|
|
ok joris@
|