aboutsummaryrefslogtreecommitdiff
path: root/git-cvsserver.perl
Commit message (Collapse)AuthorAge
* cvsserver: imitate git-update-ref when committingJohannes Schindelin2006-07-26
| | | | | | | | | | git-update-ref writes into the lockfile, and renames it afterwards. Like commit v1.3.0-rc3~22, it is not only cleaner, but also helps with shared setups: every developer can have a different primary group; what matters is that $GIT_DIR/refs/heads has to be writable by a group you are in. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* git-cvsserver: support multiline commit messagesJohannes Schindelin2006-07-26
| | | | | | | | | | | Earlier, cvsserver barfed when you tried to check in files with a multiline commit message. That is what Argumentx is for... Argument: lines can be followed by several Argumentx: lines, which means they should be appended. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* cvsserver: avoid warning about active db handlesv1.4.2-rc2Johannes Schindelin2006-07-25
| | | | | | | | | Turns out that DBD::SQLite does not favour preparing statements which are never executed. So, turn all 4 statements, which were prepared _always_, into methods, like the other 12 prepared statements. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* cvsserver: suppress warningsJohannes Schindelin2006-07-25
| | | | | | | | | This patch defines $state->{prependdir} as the empty string, so that quite a few warnings are avoided. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Acked-by: Martin Langhoff <martin@catalyst.net.nz> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Assorted typo fixesPavel Roskin2006-07-09
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* Change to allow subdir updates from EclipseMartyn Smith2006-05-08
| | | | (Now you can rightclick any directory and select team-update/team-commit) and it should work
* Many fixes for most operations in Eclipse.Martyn Smith2006-05-08
| | | | | | | | | | * Implemented global -n option * Implemented "Questionable" * Fixed Directory method, I _believe_ it's now correct in both cmdline and Eclipse. * Directory method Now looks for localdir of "." and compares the repo dir, uses THIS as a basis for all directory level calculations. * Added extra parameter to filenamesplit() to force stripping of "prepended" directory name. This ensures commits/updates etc work from any directory in the source tree. * Modified argsfromdir() so it is "always" called. This means that when the client specifies a directory, the method can detect this and behave accordingly (this is currently only implemented for the '.' directory) * Fixed "commit" method to correctly work from in a subdir
* Added logged warnings for CVS error returnsMartyn Smith2006-05-08
|
* cvsserver: use git-rev-list instead of git-logMartin Langhoff2006-05-04
| | | | | | | | | On 5/4/06, Linus Torvalds <torvalds@osdl.org> wrote: > No it wasn't. "git log --parents" was definitely supposed to still work. > > That said, I suspect a git-cvsserver kind of usage is better off using > "git-rev-list --parents HEAD" instead, which didn't break in the first > place.
* git-cvsserver: typofixesJunio C Hamano2006-04-25
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* Deprecate usage of git-var -l for getting config vars listPetr Baudis2006-04-24
| | | | | | | | This has been an unfortunate sideway in the git API evolution. We use git-repo-config for all the other .git/config interaction so let's also use git-repo-config -l for the variable listing. Signed-off-by: Petr Baudis <pasky@suse.cz>
* cvsserver: anonymous cvs via pserver supportMartin Langhoff2006-03-04
| | | | | | | | | | | | | | | | | git-cvsserver now knows how to do the pserver auth chat when the user is anonymous. To get it to work, add a line to your inetd.conf like cvspserver stream tcp nowait nobody git-cvsserver pserver (On some inetd implementations you may have to put the pserver parameter twice.) Commits are blocked. Naively, git-cvsserver assumes non-malicious users. Please review the code before setting this up on an internet-accessible server. NOTE: the <nobody> user above will need write access to the .git directory to maintain the sqlite database. Updating of the sqlite database should be put in an update hook to avoid this problem, so that it is maintained by users with write access.
* cvsserver: better error messagesMartin Langhoff2006-03-03
| | | | | | | | We now have different error messages when the repo is not found vs repo is not configured to allow gitcvs. Should help users during initial checkouts. Signed-off-by: Martin Langhoff <martin@catalyst.net.nz> Signed-off-by: Junio C Hamano <junkio@cox.net>
* cvsserver: nested directory creation fixups for Eclipse clientsMartin Langhoff2006-03-03
| | | | | | | | | | | | To create nested directories without (or before) sending file entries is rather tricky. Most clients just work. Eclipse, however, expects a very specific sequence of events. With this patch, cvsserver meets those expectations. Note: we may want to reuse prepdir() in req_update -- should move it outside of req_co. Right now prepdir() is tied to how req_co() works. Signed-off-by: Junio C Hamano <junkio@cox.net>
* cvsserver: fix checkouts with -d <somedir>Martin Langhoff2006-03-02
| | | | | A recent Eclipse compat fix broke checkouts with -d. Fix it so that the server sends the correct module name instead of the destination directory name.
* cvsserver: checkout faster by sending files in a sensible orderMartin Langhoff2006-03-02
| | | | | | | | | | | | | | | Just by sending the files in an ordered fashion, clients can process them much faster. And we can optimize our check of whether we created this directory already -- faster. Timings for a checkout on a commandline cvs client for a project with ~13K files totalling ~100MB: Unsorted: 603.12 real 16.89 user 42.88 sys Sorted: 298.19 real 26.37 user 42.42 sys
* cvsserver: Eclipse compat -- now "compare with latest from HEAD" worksMartin Langhoff2006-03-01
| | | | | | | | | | The Eclipse client uses cvs update when that menu option is triggered. And doesn't like the standard cvs update response. Give it *exactly* what it wants. And hope the other clients don't lose the plot too badly. Signed-off-by: Junio C Hamano <junkio@cox.net>
* cvsserver: Checkout correctly on EclipseMartin Langhoff2006-03-01
| | | | | | | | | | | | | Initial checkouts were failing to create Entries files under Eclipse. Eclipse was waiting for two non-standard directory-resets to prepare for a new directory from the server. This patch is tricky, because the same directory resets tend to confuse other clients. It's taken a bit of fiddling to get the commandline cvs client and Eclipse to get a good, clean checkout. Signed-off-by: Martin Langhoff <martin@catalyst.net.nz> Signed-off-by: Junio C Hamano <junkio@cox.net>
* cvsserver: Eclipse compat - browsing 'modules' (heads in our case) worksMartin Langhoff2006-03-01
| | | | | | | | Eclipse CVS clients have an odd way of perusing the top level of the repository, by calling update on module "". So reproduce cvs' odd behaviour in the interest of compatibility. It makes it much easier to get a checkout when using Eclipse.
* cvsserver: Eclipse compat fixes - implement Questionable, alias rlog, add a ↵Martin Langhoff2006-03-01
| | | | | | | | | | space after the U A few things to satisfy Eclipse's strange habits as a cvs client: - Implement Questionable - Aliased rlog to log, but more work may be needed - Add a space after the U that indicates updated
* Introducing git-cvsserver -- a CVS emulator for git.Martin Langhoff2006-02-22
git-cvsserver is highly functional. However, not all methods are implemented, and for those methods that are implemented, not all switches are implemented. All the common read operations are implemented, and add/remove/commit are supported. Testing has been done using both the CLI CVS client, and the Eclipse CVS plugin. Most functionality works fine with both of these clients. Currently git-cvsserver only works over SSH connections, see the Documentation for more details on how to configure your client. It does not support pserver for anonymous access but it should not be hard to implement. Anonymous access will need tighter input validation. In our very informal tests, it seems to be significantly faster than a real CVS server. This utility depends on a version of git-cvsannotate that supports -S and on DBD::SQLite. Licensed under GPLv2. Copyright The Open University UK. Authors: Martyn Smith <martyn@catalyst.net.nz> Martin Langhoff <martin@catalyst.net.nz> Signed-off-by: Martin Langhoff <martin@catalyst.net.nz> Signed-off-by: Junio C Hamano <junkio@cox.net>