summaryrefslogtreecommitdiffstats
path: root/usr.bin/cvs/repository.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Replace <sys/param.h> with <limits.h> and other less dirty headers wherederaadt2015-01-161-6/+6
| | | | | | | | | possible. Annotate <sys/param.h> lines with their current reasons. Switch to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where sensible to avoid pulling in the pollution. These are the files confirmed through binary verification. ok guenther, millert, doug (helped with the verification protocol)
* Rename a bunch of variables and functions, removing the cvs_/rcs_ray2010-07-231-4/+4
| | | | | | prefixes to reduce differences between cvs and rcs files. "yes!" nicm
* fix the way Attic is handled in our recursion code, so wejoris2009-03-261-5/+7
| | | | | | | | | | | | | do not skip files or run over them twice. also fixes -l and -r for checkout/update when a file in Attic exists with that tag that in HEAD is a directory in the normal repository like gnu/usr.bin/gcc/INSTALL. as a bonus, we do not run fstat() twice per file or dir anymore... spotted by deraadt@
* use file_flags for 2 more reasons:joris2009-02-211-7/+11
| | | | | | | | | - mark a file as being inside the Attic/ - mark a file as existing in the working copy (both in local and remote mode) this way we no longer will need to check if cf->fd == -1 and think about wether or not we are in local or remote mode.
* proper repository locking:joris2008-03-091-3/+12
| | | | | | | - all read operations now look for a lock, and wait if present but never try to lock the tree themselfs anymore. - all write operations lock the tree where needed. - commit locks all relevant directories before even attempting to start.
* shuffle some stuff around so we dont end up doing the same thingsjoris2008-02-031-1/+5
| | | | | | twice in cvs_module_lookup() and checkout_check_directory(); allow single files to be ignored with ! as well;
* more CVSROOT/module stuff:joris2008-02-031-1/+6
| | | | | | | | - allow more then 1 module to be specified per definition - respect the "!" sign which means: "hey ignore this dir when checking out" - non alias definitions can now contain files ok tobias@
* On repository-side, only parse files which end with ,v (RCS_FILE_EXT).tobias2008-01-311-3/+5
| | | | | | | File name ",v" is ignored, too -- in opposite to weird GNU cvs that tries to create a file without name. OK joris@
* Don't ignore files and directories due to patterns on repository-side,tobias2008-01-101-4/+1
| | | | | | | these patterns should only be applied on working directories. This finally enables a fully working "cvs checkout src" (but don't expect all checkout options to work, too).
* better branching/sticky tag support, no branch commits yet though.joris2007-09-221-3/+3
|
* Rework the way opencvs works in relation to files in the Attic/:joris2007-07-031-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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!
* add support for local and remote branch checkout. for example,niallo2007-06-011-2/+1
| | | | | | | cvs co -rOPENBSD_3_0 works now. along the way, simplify and rationalise code and fix a few nits. ok joris@ xsa@ ray@
* general includes cleanup sweep. ok joris@ niallo@otto2007-02-221-6/+8
|
* cvs_path_cat() removal since we can now easily handle thatxsa2007-02-171-12/+5
| | | | | functionality w/ xsnprintf(); Initial diff started by thib@. OK thib@ joris@.
* fstat() -> lstat() in a few select cases,todd2007-02-071-3/+3
| | | | | | this fixes a bug where opencvs update would abort if a link existed that pointed to a non-existent file/dir ok joris@
* use more stack allocations for fixed size buffers. ok xsa@ joris@otto2007-01-251-8/+2
|
* When we hit a DT_UNKNOWN for dirent->d_type in our filelist functions,joris2007-01-191-10/+55
| | | | | | | | | | | | | stat() the filepath to get the correct type, and therefor add it to the appropriate list. This fixes opencvs with CVSROOTs on NFS and AFS, because they both return D_UNKNOWN for directories (afs even for files too) in dirent->d_type. problem found by thib@ and todd@ tested by thib@, todd@, ok niallo@
* Permit checkout from a read-only repository using the -R global optionxsa2006-12-111-1/+4
| | | | | or using the CVSREADONLYFS environment variable. Request/test/ok todd@. Man page bits courtesy of jmc@.
* snprintf() -> cvs_path_cat()xsa2006-11-281-13/+9
|
* no magic, "Attic" -> CVS_PATH_ATTICxsa2006-11-101-2/+2
|
* zap myuid variable, it is not used for anything usefull.joris2006-06-141-3/+1
|
* various spelling fixesdavid2006-06-021-2/+2
|
* allow commands to respect the -l flag, if the -l flag isjoris2006-05-271-2/+5
| | | | | | | specified certain commands will not recurse into directories. at the same time introduce a method of specifying wether or not a command should look in the repository for files.
* commit the new opencvs code, i have been hacking onjoris2006-05-271-0/+130
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.