summaryrefslogtreecommitdiff
path: root/usr.bin/cvs/client.c
AgeCommit message (Collapse)Author
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@
2007-09-10remove my addition of portnumber for rsh in CVSROOT.Joris Vink
while it sounds like a "good" idea some people convinced me otherwise. mostly because this breaks compat with GNU cvs.
2007-09-10Allow port specification in our CVSROOT which is used for ourJoris Vink
ssh connection to our server. Example: joris@somehost.com:2222:/cvs OK tobias@
2007-09-07Added support for single file checkout.Tobias Stoeckmann
OK joris@
2007-09-07Do not use global option -V (GNU cvs doesn't understand it), be veryTobias Stoeckmann
verbose per default on server-side instead. OK joris@
2007-09-02OpenCVS server init-support with OpenCVS and GNU cvs clients.Tobias Stoeckmann
OK joris@
2007-09-02Log all commands sent with cvs_remote_output(), not justTobias Stoeckmann
cvs_client_send_request(). Simplified logging code while at it. OK joris@
2007-09-01s/free/xfreeJoris Vink
2007-08-30properly send our log message to the server using Argumentx, so weJoris Vink
no longer break when the log message has multiple lines. from Tobias Stoeckmann, thanks for doing my work!
2007-07-17Forgot this part about rlog not needing the Directory request to be sent.Xavier Santolaria
2007-07-17Do not send the Directory request when using the rlog command.Xavier Santolaria
OK joris@.
2007-07-03Rework the way opencvs works in relation to files in the Attic/:Joris Vink
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!
2007-06-29Server-side bits for release command.Xavier Santolaria
2007-06-28Sync revisions and time buffers size to be consistent with each others.Xavier Santolaria
Simplifies further size tweaks if needed. OK niallo@ ray@.