* [PATCH] Add NO_RSYNC to allow building without rsync
@ 2008-07-30 18:52 Aidan Van Dyk
2008-07-30 19:33 ` Linus Torvalds
2008-07-30 20:11 ` Junio C Hamano
0 siblings, 2 replies; 6+ messages in thread
From: Aidan Van Dyk @ 2008-07-30 18:52 UTC (permalink / raw)
To: git
This is similar to NO_CURL.
Signed-off-by: Aidan Van Dyk <aidan@highrise.ca>
---
I came about this because SCO OpenServer doesnt' have mkdtemp. But I never use
rsync, so making it optional was an easy fix.
Makefile | 4 ++++
transport.c | 9 ++++++++-
2 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile
index 798a2f2..b0a2985 100644
--- a/Makefile
+++ b/Makefile
@@ -789,6 +789,10 @@ else
CC_LD_DYNPATH = -R
endif
+ifdef NO_RSYNC
+ BASIC_CFLAGS += -DNO_RSYNC
+endif
+
ifdef NO_CURL
BASIC_CFLAGS += -DNO_CURL
else
diff --git a/transport.c b/transport.c
index 6eb65b8..867b01f 100644
--- a/transport.c
+++ b/transport.c
@@ -142,6 +142,7 @@ static void insert_packed_refs(const char *packed_refs, struct ref **list)
}
}
+#ifndef NO_RSYNC
static struct ref *get_refs_via_rsync(struct transport *transport)
{
struct strbuf buf = STRBUF_INIT, temp_dir = STRBUF_INIT;
@@ -232,6 +233,7 @@ static int fetch_objs_via_rsync(struct transport *transport,
return result;
}
+#endif
static int write_one_ref(const char *name, const unsigned char *sha1,
int flags, void *data)
@@ -276,6 +278,7 @@ static int write_refs_to_temp_dir(struct strbuf *temp_dir,
return 0;
}
+#ifndef NO_RSYNC
static int rsync_transport_push(struct transport *transport,
int refspec_nr, const char **refspec, int flags)
{
@@ -345,6 +348,7 @@ static int rsync_transport_push(struct transport *transport,
return result;
}
+#endif
/* Generic functions for using commit walkers */
@@ -731,10 +735,13 @@ struct transport *transport_get(struct remote *remote, const char *url)
ret->url = url;
if (!prefixcmp(url, "rsync://")) {
+#ifdef NO_RSYNC
+ error("git was compiled without rsync support.");
+#else
ret->get_refs_list = get_refs_via_rsync;
ret->fetch = fetch_objs_via_rsync;
ret->push = rsync_transport_push;
-
+#endif
} else if (!prefixcmp(url, "http://")
|| !prefixcmp(url, "https://")
|| !prefixcmp(url, "ftp://")) {
--
1.6.0.rc1.dirty
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] Add NO_RSYNC to allow building without rsync
2008-07-30 18:52 [PATCH] Add NO_RSYNC to allow building without rsync Aidan Van Dyk
@ 2008-07-30 19:33 ` Linus Torvalds
2008-07-30 19:49 ` Aidan Van Dyk
2008-07-30 20:11 ` Junio C Hamano
1 sibling, 1 reply; 6+ messages in thread
From: Linus Torvalds @ 2008-07-30 19:33 UTC (permalink / raw)
To: Aidan Van Dyk; +Cc: git
On Wed, 30 Jul 2008, Aidan Van Dyk wrote:
>
> I came about this because SCO OpenServer doesnt' have mkdtemp. But I never use
> rsync, so making it optional was an easy fix.
Hmm. Without mkdtemp(), maybe you could just do a trivial compat function
somethin glike
char *git_mkdtemp(char *template)
{
char *n = mktemp(template);
if (mkdir(n))
n = NULL;
return n;
}
instead?
Linus
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Add NO_RSYNC to allow building without rsync
2008-07-30 19:33 ` Linus Torvalds
@ 2008-07-30 19:49 ` Aidan Van Dyk
0 siblings, 0 replies; 6+ messages in thread
From: Aidan Van Dyk @ 2008-07-30 19:49 UTC (permalink / raw)
To: Linus Torvalds; +Cc: git
[-- Attachment #1: Type: text/plain, Size: 843 bytes --]
* Linus Torvalds <torvalds@linux-foundation.org> [080730 15:42]:
> Hmm. Without mkdtemp(), maybe you could just do a trivial compat function
> somethin glike
>
> char *git_mkdtemp(char *template)
> {
> char *n = mktemp(template);
> if (mkdir(n))
> n = NULL;
> return n;
> }
>
> instead?
And as I go to whip that up (ya, I'm lazy and just needed a prod), I see
it's already done:
# Define NO_MKDTEMP if you don't have mkdtemp in the C library.
But since rsync isn't available on this compile anyways, I still think
NO_RSYNC is worth having on it's own, just like NO_CURL or NO_TCLTK
a.
--
Aidan Van Dyk Create like a god,
aidan@highrise.ca command like a king,
http://www.highrise.ca/ work like a slave.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Add NO_RSYNC to allow building without rsync
2008-07-30 18:52 [PATCH] Add NO_RSYNC to allow building without rsync Aidan Van Dyk
2008-07-30 19:33 ` Linus Torvalds
@ 2008-07-30 20:11 ` Junio C Hamano
2008-07-30 20:49 ` Aidan Van Dyk
1 sibling, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2008-07-30 20:11 UTC (permalink / raw)
To: Aidan Van Dyk; +Cc: git
Aidan Van Dyk <aidan@highrise.ca> writes:
> This is similar to NO_CURL.
I am not sure if this is a good change.
We link with libcurl so supporting NO_CURL makes sense for an environment
without the library, but for rsync transport we just spawn it as a
separate process. The net effect on a machine without rsync installed is
the same (you cannot use rsync transport), but you can later choose to
install rsync and things will start working without recompiling git.
> Signed-off-by: Aidan Van Dyk <aidan@highrise.ca>
> ---
>
> I came about this because SCO OpenServer doesnt' have mkdtemp. But I never use
> rsync, so making it optional was an easy fix.
Perhaps "make NO_MKDTEMP=YesPlease" is a much better fix for your
particular environment?
The patch is seriously whitespace damaged, in any case.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Add NO_RSYNC to allow building without rsync
2008-07-30 20:11 ` Junio C Hamano
@ 2008-07-30 20:49 ` Aidan Van Dyk
2008-07-30 21:42 ` Boyd Lynn Gerber
0 siblings, 1 reply; 6+ messages in thread
From: Aidan Van Dyk @ 2008-07-30 20:49 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
[-- Attachment #1: Type: text/plain, Size: 777 bytes --]
* Junio C Hamano <gitster@pobox.com> [080730 16:11]:
> > I came about this because SCO OpenServer doesnt' have mkdtemp. But I never use
> > rsync, so making it optional was an easy fix.
>
> Perhaps "make NO_MKDTEMP=YesPlease" is a much better fix for your
> particular environment?
Yes, I found that out after...
> The patch is seriously whitespace damaged, in any case.
Ooops... copy-n-paste from git-format-patch|more on some crappy sco terminal
through a screen session... I guess someone in there translated tabs to
spaces...
a.
--
Aidan Van Dyk Create like a god,
aidan@highrise.ca command like a king,
http://www.highrise.ca/ work like a slave.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Add NO_RSYNC to allow building without rsync
2008-07-30 20:49 ` Aidan Van Dyk
@ 2008-07-30 21:42 ` Boyd Lynn Gerber
0 siblings, 0 replies; 6+ messages in thread
From: Boyd Lynn Gerber @ 2008-07-30 21:42 UTC (permalink / raw)
To: Aidan Van Dyk; +Cc: Junio C Hamano, git
On Wed, 30 Jul 2008, Aidan Van Dyk wrote:
> * Junio C Hamano <gitster@pobox.com> [080730 16:11]:
> > > I came about this because SCO OpenServer doesnt' have mkdtemp. But I never use
> > > rsync, so making it optional was an easy fix.
> >
> > Perhaps "make NO_MKDTEMP=YesPlease" is a much better fix for your
> > particular environment?
>
> Yes, I found that out after...
>
> > The patch is seriously whitespace damaged, in any case.
>
> Ooops... copy-n-paste from git-format-patch|more on some crappy sco terminal
> through a screen session... I guess someone in there translated tabs to
> spaces...
I do have rsync. I use it all the time on OpenServer 6. I have automated
rsync backups of certain Openserver 6 machines.
tech0 > rsync --version
rsync version 3.0.2 protocol version 30
Copyright (C) 1996-2008 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, no IPv6, batchfiles, inplace,
append, ACLs, no xattrs, iconv, no symtimes
tech0.zenez.com and osr600.zenez.com are OpenServer 6 machines.
--
Boyd Gerber <gerberb@zenez.com>
ZENEZ 1042 East Fort Union #135, Midvale Utah 84047
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-07-30 21:43 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-30 18:52 [PATCH] Add NO_RSYNC to allow building without rsync Aidan Van Dyk
2008-07-30 19:33 ` Linus Torvalds
2008-07-30 19:49 ` Aidan Van Dyk
2008-07-30 20:11 ` Junio C Hamano
2008-07-30 20:49 ` Aidan Van Dyk
2008-07-30 21:42 ` Boyd Lynn Gerber
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).