summaryrefslogtreecommitdiff
path: root/usr.bin/cvs/server.c
AgeCommit message (Collapse)Author
2008-07-08make these compile cleanlyJoris Vink
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-12completely kill the need for TMP_DIR when running checkout,Joris Vink
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@
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-05-28Don't limit ourselfs when it comes to arguments on command line orTobias Stoeckmann
arguments sent by client. ok joris
2008-05-06We have to check if server_argc is 1 instead of lesser than 0 to see ifTobias Stoeckmann
an Argumentx directive has been sent to server without prior Argument. ok joris, xsa
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-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-09Introduce cvs_ent_line_str() - formats CVS/Entries lines.Xavier Santolaria
OK tobias@.
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-01Added rannotate supportTobias Stoeckmann
OK xsa@
2008-01-31Zap trailing whitespaces.Xavier Santolaria
2008-01-31Replaced the unused cvs_command variable cmd_req with cmd_flags, which statesTobias Stoeckmann
if the current command is supposed to use a working directory or if it is a repository-only command (as of now checkout -p, rtag, rlog). Makes the code simpler, easier to read and automagically fixes some issues we encountered with these commands (for example if a working directory exists, or "." operations are performed). OK joris@, niallo@
2008-01-29Fixed function name in fatal calls. While at it, adjusted style.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-10Got cvs_server_rlog back into shape.Tobias Stoeckmann
2007-11-09Parse CVSROOT/config and set umask on server-side, too.Tobias Stoeckmann
2007-09-22better branching/sticky tag support, no branch commits yet though.Joris Vink
2007-09-22we no longer create a 0 sized file in our /tmp/cvs-serv<pid> serverJoris Vink
directory when a client sends us info about a file that is up to date. instead, remember the file is up to date in our CVS/Entries. Saves us a lot of headaches on very big trees like src/
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-02Stick at GNU cvs behaviour with Root directive handling: it does not needTobias Stoeckmann
to be sent first, can occure multiple times (although this is ignored) but should be supplied before Directory. OK joris@
2007-08-28more typos in error messages; from Igor Zinovik.Xavier Santolaria
2007-08-23support ArgumentX - unbreaks more gnu cvs client things.Joris Vink
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-27have the server be more strict about the requests the clientJoris Vink
sends that need a 'Directory' request first, so we do not end up with very weird and possibly insecure behaviour. more soon! ok niallo@ ray@ xsa@
2007-06-26add support for cvs rlog.Niall O'Higgins
from Mickey. ok joris@ ray@
2007-06-06Don't double xstrdup.Ray Lai
From mickey. ``i made a booboo'' joris, OK niallo and xsa.
2007-05-27Fix off-by-one, from Tobias Stoeckmann.Ray Lai
OK niallo@
2007-05-26It is not the job of cvs_server_send_response() to do error checking.Ray Lai
Also remove unused variable. OK niallo@
2007-05-26Remove redundant xsnprintf calls.Ray Lai
OK niallo@
2007-05-25Call fatal() if we are missing an argument. From Tobias Stoeckmann.Ray Lai
OK niallo@.
2007-05-25Check vasprintf for failure.Ray Lai
OK niallo@.
2007-02-22general includes cleanup sweep. ok joris@ niallo@Otto Moerbeek
2007-02-17cvs_path_cat() removal since we can now easily handle thatXavier Santolaria
functionality w/ xsnprintf(); Initial diff started by thib@. OK thib@ joris@.
2007-01-31snprintf() -> xsnprintf()Xavier Santolaria
2007-01-26Handle CVS/Entries and file timestamp correctly so we doJoris Vink
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@
2007-01-25use more stack allocations for fixed size buffers. ok xsa@ joris@Otto Moerbeek
2007-01-18import improvements:Joris Vink
- add support for remote import in opencvs client and server. - do not free already free'd buffers in import_update() - do not append a '\0' to the loaded file buffer, this was bad behaviour makes import work fine both locally and remotely.
2007-01-17add support for remote checkout in both our client and server,Joris Vink
with this the last real dependency to actually be able to use opencvs in a remote setup has been added. based upon an initial diff from xsa@ 'kay niallo@
2007-01-13- remote update now works again, with new rcs apiJoris Vink
- we no longer hold the entire file in memory when sending or receiving it
2007-01-03add support for 'remove' in a remote setup.Joris Vink
testing appriciated, as always.
2006-12-19add client-side support for Set-static-directory.Xavier Santolaria
2006-12-19add client-side support for Clear-static-directory, Clear-sticky andXavier Santolaria
Set-sticky requests. Set-sticky needs more work though.
2006-12-15dummy support for update-patches request.Xavier Santolaria
2006-12-15server-side Static-directory bits.Xavier Santolaria