[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Request for comments on 'Extending CVS with offline/disconnected ope
From: |
Stefan Monnier |
Subject: |
Re: Request for comments on 'Extending CVS with offline/disconnected operations' |
Date: |
29 May 2003 14:15:50 -0400 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50 |
> I think I would write a wrapper script around CVS calls for any email-based
> transport. The rest of it I'd like to see implemented, but I don't have
> time right now to do it myself. If anyone submitted fairly complete
> patches, I'd be happy to review and maybe commit them.
A while ago, I sent patches to make `add' and `remove' local operations.
There were the following problems:
- `cvs add <dir>' still needed remote access. Getting rid of this case
requires changes in the `commit' part of the server to automatically
create a directory in the repository when needed. I didn't bother with it.
- `cvs add <removedfile>' fails to resurrect the file (because it
needs to connect to the server, but it didn't).
Stefan
I haven't updated the patches. For `cvs rm' it was just:
--- /home/monnier/install/cvs/src/remove.c.~1.48~ Thu May 29 14:11:33 2003
+++ /home/monnier/install/cvs/src/.#remove.c.1.48 Sun Jul 8 20:27:17 2001
@@ -76,7 +76,7 @@
wrap_setup ();
-#ifdef CLIENT_SUPPORT
+#if 0
if (current_parsed_root->isremote) {
/* Call expand_wild so that the local removal of files will
work. It's ok to do it always because we have to send the
@@ -113,7 +113,7 @@
err = start_recursion (remove_fileproc, (FILESDONEPROC) NULL,
remove_dirproc, (DIRLEAVEPROC) NULL, NULL,
argc, argv,
- local, W_LOCAL, 0, 1, (char *) NULL, 1);
+ local, W_LOCAL, 0, !client_active, (char *) NULL,
1);
if (removed_files && !really_quiet)
error (0, 0, "use '%s commit' to remove %s permanently", program_name,
For `cvs add':
--- src/add.c 30 Apr 2003 17:24:07 -0000 1.85
+++ src/add.c 29 May 2003 18:15:10 -0000
@@ -59,6 +59,7 @@
/* Nonzero if we found a slash, and are thus adding files in a
subdirectory. */
int found_slash = 0;
+ int found_dir = 0;
size_t cvsroot_len;
if (argc == 1 || argc == -1)
@@ -119,6 +120,7 @@
{
char *p;
p = argv[i];
+ if (isdir (p)) found_dir = 1;
while (*p != '\0')
{
if (ISDIRSEP (*p))
@@ -148,7 +150,7 @@
}
#ifdef CLIENT_SUPPORT
- if (current_parsed_root->isremote)
+ if (current_parsed_root->isremote && found_dir)
{
int j;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: Request for comments on 'Extending CVS with offline/disconnected operations',
Stefan Monnier <=