summaryrefslogtreecommitdiff
path: root/usr.bin/cvs/client.c
AgeCommit message (Collapse)Author
2020-10-19Accommodate POSIX basename(3) that takes a non-const parameter andChristian Weisgerber
may modify the string buffer. ok florian@ millert@
2018-07-14don't run cvs_client_sendfile() if its file_type is CVS_DIR, but do notJoris Vink
depend on it being CVS_FILE explicitly. unbreaks remote operations on removed files.
2017-08-21When executing ssh, use "--" to indicate end of arguments before theTodd C. Miller
host name. Adapted from a MirBSD diff by Thorsten Glaser.
2017-06-01Don't look at file_type until after cvs_remote_classify_file() was called.Joris Vink
The file status may be unknown until after that call.
2015-11-05Remove xfree(), like already done for RCS. From Michael W Bombardieri,Nicholas Marriott
ok mmcc
2015-01-16Replace <sys/param.h> with <limits.h> and other less dirty headers whereTheo de Raadt
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)
2010-09-29Support for update -C, from zinovik.Nicholas Marriott
ok tobias xsa
2010-07-23Reduce variable/function name and whitespace differences betweenRay Lai
cvs/rcs. OK xsa zinovik
2009-04-04properly expand modules if requested by the client,Joris Vink
this option is needed so gnu cvs clients can play along properly when running checkout <module> in a remote setup. if we do not support this, gnu cvs refuses to send us any existing files already on disk and opencvs will consider everything as NEEDS_CHECKOUT, instead of running an update on existing stuff. problem noticed by fgsch@ commited with opencvs, but please everybody else do not use opencvs to commit yet.
2009-04-01in client mode, be sure to consider the file modified if a conflictJoris Vink
exists in the CVS/Entries file, otherwise the server has no way of determining if the user has resolved it or not. also in client mode, send a conflict as Â"+=" not "+" alone, so other cvs implementations get it. commited entirely with opencvs, with permission by deraadt@
2009-02-23Properly convert between gmt and localtime for unchanged files as client.Tobias Stoeckmann
Problem reported by Jesus Sanchez (zexel08 at gmail dot com). ok joris
2009-02-21use FILE_ON_DISK flags when we need to verify if a fileJoris Vink
exists in the working copy or not instead of checking fd being -1 since this can differ in server or local mode.
2009-02-13be more sane in handling the given repository pathJoris Vink
in cvs_client_updated().
2008-06-14don't always re-open the same CVS/Entries file, instead keep theJoris Vink
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@
2008-06-11Avoid possible NULL pointer dereferences by using reentrant versionsTobias Stoeckmann
of time functions. ok joris
2008-06-10We have a cvs_buf_puts implementation now, also use cvs_buf_putc insteadTobias Stoeckmann
of cvs_buf_append where appropiate. ok joris
2008-04-24Use a fixed string in case of vasprintf() error instead of relying onTobias Stoeckmann
strerror(). Although our vasprintf() sets errno, we cannot rely on it on other systems. ok ray (who spotted this issue), xsa
2008-04-18Properly check memory allocation in client code. While at it, unifiedTobias Stoeckmann
vasprintf() check across OpenCVS code base. Based on a diff by Jacek Masiulaniec. ok (and unification requested by) xsa
2008-03-09revert one of tobias his changes, it broke remote for several commands.Joris Vink
2008-03-09Prevent sending of "Directory" messages for arguments in remote setup ifTobias Stoeckmann
the specified files (or directories) do not exist. ok joris
2008-03-08Set umask (and cvs_umask) to system's umask in local and client mode.Tobias Stoeckmann
Also zap umask(0);umask(mask); calls, we have cvs_umask for this. ok joris
2008-02-29handle file permissions and owners properly.Joris Vink
matches what gnu cvs does. fixes the fact that we couldnt update group writable files. problem report & diff testing by David Crawshaw.
2008-02-28do not fatal() on CVS_METHOD_EXT, since we actually support this.Joris Vink
reported & diff tested by Geerd-Dietger Hoffmann
2008-02-27prevent file racesJoris Vink
ok tobias@
2008-02-11Cleanup buf implementation:Tobias Stoeckmann
* Don't check for NULL on buffer creation, because it calls fatal() when something's wrong. * All buffers are supposed to expand if there is no space left in them, so zap flags as well. * Remove code that is now dead. OK joris@ > Inspired by a diff from Igor Zinovik about unchecked return value.
2008-02-10+ #define CVS_DATE_FMT "%Y.%m.%d.%H.%M.%S"Xavier Santolaria
...and use it.
2008-02-10handle date tags if we receive / send themJoris Vink
2008-02-09Introduce cvs_ent_line_str() - formats CVS/Entries lines.Xavier Santolaria
OK tobias@.
2008-02-09remote improvements:Joris Vink
- make sure the client creates the correct CVS/Repository when running checkout if there was no -d targetdir specified. - allow -D to work remotely for both checkout and update.
2008-02-05When server sends CheckedIn use the supplied option and tag -- not theTobias Stoeckmann
one already in our CVS/Entries. OK xsa@
2008-02-03Added rdiff support. In order to do this, some output and option fixesTobias Stoeckmann
had to be done for diff, too. OK joris@
2008-02-03better CVSROOT/module support, includes remote support and modulesJoris Vink
that are not aliases (-a); OK tobias@
2008-02-03Like i wrote in last commit, it's supposed to be sys/time.h, not sys/times.h.Tobias Stoeckmann
2008-02-03(f)utimes takes sys/time.hTobias Stoeckmann
2008-02-01Make cvs_requests struct more readable.Xavier Santolaria
2008-02-01Added rannotate supportTobias Stoeckmann
OK xsa@
2008-01-31Zap trailing whitespaces.Xavier Santolaria
2008-01-31Make use of CVS_REV_BUFSZ everywhere for `sticky'.Xavier Santolaria
2008-01-29Properly check if an argument has been supplied for "Removed"Tobias Stoeckmann
> Diff from Igor Zinovik
2008-01-21Fixed export to be fully functional and compliant to GNU cvs in local andTobias Stoeckmann
remote setups. OK xsa@
2008-01-10Added support for rtag in local and remote setups (with interoperabilityTobias Stoeckmann
with GNU cvs). Basically we already had rtag in place as tag is supposed to work with revisions in working directory, but our implementation was wrong. Fixed that on the fly as well.
2008-01-10another strcspn() roundTobias Stoeckmann
2008-01-10Simply the use of cmdp and cvs_command by zapping cvs_command and workingTobias Stoeckmann
solely with cmdp. This remedies some reliability issues with invalid commands supplied and also fixes a GNU cvs style incompatibility with release command. > Based on patch from Igor Zinovik
2008-01-10Properly free entryTobias Stoeckmann
> Patch from Igor Zinovik
2008-01-10Ignore CVS directories during import in remote setups. assert()ed GNUTobias Stoeckmann
cvs server and was unwanted behaviour anyway.
2008-01-10Properly handle "cvs add" on a client/server setup with GNU cvs as a client.Tobias Stoeckmann
2007-11-11If a file has modifications in it (i.e. cvs update on modified files),Tobias Stoeckmann
reapply umask as done with unmodified files. Sticks at GNU cvs behaviour.
2007-10-07nb is an int, so it should be compared to an int.Charles Longeau
ok ray@
2007-09-22Support for checkout with a local repository already in place.Tobias Stoeckmann
OK joris@
2007-09-17Print error messages sent by server on stderr. While at it, replacedTobias Stoeckmann
cvs_printf in cvs_client_m with puts (no need of cvs_printf's abilities here). OK joris@