* Re: Compiling git-snapshot-20069831
From: Jorma Karvonen @ 2006-08-31 17:25 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git
In-Reply-To: <Pine.LNX.4.63.0608311904520.28360@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin wrote:
> Hi,
>
> On Thu, 31 Aug 2006, Jorma Karvonen wrote:
>
>
>> I tried
>>
>> make configure
>>
>> and got an error message:
>>
>> /bin/sh: curl-config: command not found
>> make: **** No rule to make target `configure'. Stop.
>>
>
> Okay. I deem this a bug in our Makefile.
>
> Could you please try "autoconf" and _then_ "./configure"?
>
> Hth,
> Dscho
>
>
Hi,
I tried autoconf and result was:
autoconf: no input file
Best regards,
Jorma Karvonen
karvjorm (at) users (dot) sourceforge (dot) net
^ permalink raw reply
* Re: Compiling git-snapshot-20069831
From: Johannes Schindelin @ 2006-08-31 17:06 UTC (permalink / raw)
To: Jorma Karvonen; +Cc: git
In-Reply-To: <44F71557.1080404@users.sourceforge.net>
Hi,
On Thu, 31 Aug 2006, Jorma Karvonen wrote:
> I tried
>
> make configure
>
> and got an error message:
>
> /bin/sh: curl-config: command not found
> make: **** No rule to make target `configure'. Stop.
Okay. I deem this a bug in our Makefile.
Could you please try "autoconf" and _then_ "./configure"?
Hth,
Dscho
^ permalink raw reply
* Re: Compiling git-snapshot-20069831
From: Jorma Karvonen @ 2006-08-31 16:59 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git
In-Reply-To: <Pine.LNX.4.63.0608311727010.28360@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin wrote:
> Hi,
>
> On Thu, 31 Aug 2006, Jorma Karvonen wrote:
>
>
>> Johannes Schindelin wrote:
>>
>>> Hi,
>>>
>>> since you do have a recent snapshot, why not try ./configure, as Pasky
>>> suggested?
>>>
>>> BTW I cannot read Finnish, but it probably says that you do not have curl
>>> installed. configure would detect that, and automatically set NO_CURL=1.
>>>
>>> Ciao,
>>> Dscho
>>>
>>>
>>>
>>>
>> Sorry,
>>
>> but I have not any git installed and there is no configure file in installing
>> directory.
>>
>
> Ooops. As mentioned elsewhere, try "make configure" first.
>
>
I tried
make configure
and got an error message:
/bin/sh: curl-config: command not found
make: **** No rule to make target `configure'. Stop.
Then I tried
make NEEDS_LIBICONV=1 NO_CURL=1 configure
and error message was: make: **** No rule to make target `configure'. Stop.
> This would not be necessary with ./configure, since it writes these
> settings into a file, which is read by "make".
>
> Ciao,
> Dscho
>
>
>
>
^ permalink raw reply
* Re: Problematic git pack
From: Nicolas Pitre @ 2006-08-31 16:23 UTC (permalink / raw)
To: Sergio Callegari; +Cc: git
In-Reply-To: <44F6A198.4040902@arces.unibo.it>
On Thu, 31 Aug 2006, Sergio Callegari wrote:
> The bad thing is that I don't know which of my two machines (the laptop or the
> desktop) caused the issue!
memtest86 is your friend: http://www.memtest.org
Nicolas
^ permalink raw reply
* Re: Compiling git-snapshot-20069831
From: Johannes Schindelin @ 2006-08-31 15:28 UTC (permalink / raw)
To: Jorma Karvonen; +Cc: git
In-Reply-To: <44F6F478.1070708@users.sourceforge.net>
Hi,
On Thu, 31 Aug 2006, Jorma Karvonen wrote:
> Johannes Schindelin wrote:
> > Hi,
> >
> > since you do have a recent snapshot, why not try ./configure, as Pasky
> > suggested?
> >
> > BTW I cannot read Finnish, but it probably says that you do not have curl
> > installed. configure would detect that, and automatically set NO_CURL=1.
> >
> > Ciao,
> > Dscho
> >
> >
> >
> Sorry,
>
> but I have not any git installed and there is no configure file in installing
> directory.
Ooops. As mentioned elsewhere, try "make configure" first.
> When I tested
> make NEEDS_LIBICONV=1 NO_CURL=1
>
> the make succeeded but when trying make install I got error messages shown in
> the enclosed file.
You forgot to say "NEEDS_LIBICONV=1 NO_CURL=1" with the "make install":
make NEEDS_LIBICONV=1 NO_CURL=1 install
This would not be necessary with ./configure, since it writes these
settings into a file, which is read by "make".
Ciao,
Dscho
^ permalink raw reply
* Re: Compiling git-snapshot-20069831
From: Andreas Ericsson @ 2006-08-31 15:19 UTC (permalink / raw)
To: Jakub Narebski; +Cc: git
In-Reply-To: <ed6tg9$9ij$1@sea.gmane.org>
Jakub Narebski wrote:
> Jorma Karvonen wrote:
>
>> When I tested
>>
>> make NEEDS_LIBICONV=1 NO_CURL=1
>>
>> the make succeeded but when trying make install I got error messages
>> shown in the enclosed file.
>
> Try then
> $ NEEDS_LIBICONV=YesPlease NO_CURL=YesPlease make
>
I think you meant
$ make NEEDS_LIBICONV=YesPlease NO_CURL=YesPlease install
there, Jakub.
Jorma, since the Makefile has no ideas on state, it only notices that
some files it needs to make a complete install with the parameters
you're passing it when also passing 'install' are missing, it tries to
build them, but without the NEEDS_LIBICONV and NO_CURL flags. Pass them
both when doing normal 'make' and when doing 'make install' and you'll
be fine. You might also want to check if your distribution provides a
pre-compiled package. If that's the case, you should be able to get away
with something easy such as
$ apt-get install git
or
$ yum install git
Good luck
--
Andreas Ericsson andreas.ericsson@op5.se
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
^ permalink raw reply
* [PATCH 1/3] daemon.c: introduce daemon's service [take #2]
From: Franck Bui-Huu @ 2006-08-31 15:15 UTC (permalink / raw)
To: Franck; +Cc: junkio, git
In-Reply-To: <44F6DEF4.6000609@innova-card.com>
Signed-off-by: Franck Bui-Huu <vagabon.xyz@gmail.com>
---
daemon.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 60 insertions(+), 17 deletions(-)
diff --git a/daemon.c b/daemon.c
index 66ec830..f5f6927 100644
--- a/daemon.c
+++ b/daemon.c
@@ -232,16 +232,57 @@ static char *path_ok(char *dir)
return NULL; /* Fallthrough. Deny by default */
}
-static int upload(char *dir)
+/*
+ * Services we're able to deal with.
+ */
+static int service_upload_pack(const char *dir, const char *args)
{
/* Timeout as string */
char timeout_buf[64];
+
+ snprintf(timeout_buf, sizeof timeout_buf, "--timeout=%u", timeout);
+
+ /* git-upload-pack only ever reads stuff, so this is safe */
+ execl_git_cmd("upload-pack", "--strict", timeout_buf, ".", NULL);
+ return -1;
+}
+
+/* service options */
+#define NEED_REPO (1<<0)
+
+struct service_info {
+ const char *name;
+ int (*fn)(const char *dir, const char *args);
+ int options;
+};
+
+static struct service_info services[] = {
+ { "git-upload-pack", service_upload_pack, NEED_REPO },
+};
+
+static int run_service(char *cmdline)
+{
+ struct service_info *serv;
const char *path;
+ size_t len;
+ int i;
- loginfo("Request for '%s'", dir);
+ for (i = 0; i < ARRAY_SIZE(services); i++) {
+ serv = &services[i];
- if (!(path = path_ok(dir)))
- return -1;
+ len = strlen(serv->name);
+ if (strncmp(cmdline, serv->name, len))
+ continue;
+ if (cmdline[len] != ' ')
+ continue;
+ goto found;
+ }
+ return -1;
+found:
+ cmdline += len + 1;
+ path = NULL;
+
+ loginfo("Request '%s' for '%s'", serv->name, cmdline);
/*
* Security on the cheap.
@@ -253,11 +294,16 @@ static int upload(char *dir)
* path_ok() uses enter_repo() and does whitelist checking.
* We only need to make sure the repository is exported.
*/
+ if (serv->options & NEED_REPO) {
+ if (!(path = path_ok(cmdline)))
+ return -1;
- if (!export_all_trees && access("git-daemon-export-ok", F_OK)) {
- logerror("'%s': repository not exported.", path);
- errno = EACCES;
- return -1;
+ if (!export_all_trees && access("git-daemon-export-ok", F_OK)) {
+ logerror("'%s': repository not exported.", path);
+ errno = EACCES;
+ return -1;
+ }
+ cmdline += strlen(path) + 1;
}
/*
@@ -266,17 +312,14 @@ static int upload(char *dir)
*/
signal(SIGTERM, SIG_IGN);
- snprintf(timeout_buf, sizeof timeout_buf, "--timeout=%u", timeout);
-
- /* git-upload-pack only ever reads stuff, so this is safe */
- execl_git_cmd("upload-pack", "--strict", timeout_buf, ".", NULL);
- return -1;
+ return serv->fn(path, cmdline);
}
static int execute(struct sockaddr *addr)
{
static char line[1000];
int pktlen, len;
+ int rv;
if (addr) {
char addrbuf[256] = "";
@@ -313,11 +356,11 @@ #endif
if (len && line[len-1] == '\n')
line[--len] = 0;
- if (!strncmp("git-upload-pack ", line, 16))
- return upload(line+16);
+ rv = run_service(line);
+ if (rv < 0)
+ logerror("Protocol error: '%s'", line);
- logerror("Protocol error: '%s'", line);
- return -1;
+ return rv;
}
--
1.4.2
^ permalink raw reply related
* Re: Compiling git-snapshot-20069831
From: Jakub Narebski @ 2006-08-31 14:59 UTC (permalink / raw)
To: git
In-Reply-To: <44F6F478.1070708@users.sourceforge.net>
Jorma Karvonen wrote:
> Johannes Schindelin wrote:
>> since you do have a recent snapshot, why not try ./configure, as Pasky
>> suggested?
>>
>> BTW I cannot read Finnish, but it probably says that you do not have curl
>> installed. configure would detect that, and automatically set NO_CURL=1.
>
> Sorry,
>
> but I have not any git installed and there is no configure file in
> installing directory. It was the first thing I checked after extracting
> the git-snapshot-20060831.bz2 file. The INSTALL file does not mention
> the ./configure command, either.
>From INSTALL file, 'maint' branch:
Alternatively you can use autoconf generated ./configure script to
set up install paths (via config.mak.autogen), so you can write instead
$ autoconf ;# as yourself if ./configure doesn't exist yet
$ ./configure --prefix=/usr ;# as yourself
$ make all doc ;# as yourself
# make install install-doc ;# as root
>From INSTALL file, 'next' and 'master' branches (here since 2006-08-08):
Alternatively you can use autoconf generated ./configure script to
set up install paths (via config.mak.autogen), so you can write instead
$ make configure ;# as yourself
$ ./configure --prefix=/usr ;# as yourself
$ make all doc ;# as yourself
# make install install-doc ;# as root
> When I tested
>
> make NEEDS_LIBICONV=1 NO_CURL=1
>
> the make succeeded but when trying make install I got error messages
> shown in the enclosed file.
Try then
$ NEEDS_LIBICONV=YesPlease NO_CURL=YesPlease make
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
^ permalink raw reply
* Re: Compiling git-snapshot-20069831
From: Jorma Karvonen @ 2006-08-31 14:38 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git
In-Reply-To: <Pine.LNX.4.63.0608311408350.28360@wbgn013.biozentrum.uni-wuerzburg.de>
[-- Attachment #1: Type: text/plain, Size: 785 bytes --]
Johannes Schindelin wrote:
> Hi,
>
> since you do have a recent snapshot, why not try ./configure, as Pasky
> suggested?
>
> BTW I cannot read Finnish, but it probably says that you do not have curl
> installed. configure would detect that, and automatically set NO_CURL=1.
>
> Ciao,
> Dscho
>
>
>
Sorry,
but I have not any git installed and there is no configure file in
installing directory. It was the first thing I checked after extracting
the git-snapshot-20060831.bz2 file. The INSTALL file does not mention
the ./configure command, either.
When I tested
make NEEDS_LIBICONV=1 NO_CURL=1
the make succeeded but when trying make install I got error messages
shown in the enclosed file.
Best regards,
Jorma Karvonen
karvjorm (at) users (dot) sourceforge (dot) net
[-- Attachment #2: error2.txt --]
[-- Type: text/plain, Size: 6257 bytes --]
make install;
/bin/sh: curl-config: command not found
gcc -o http.o -c -g -O2 -Wall -DSHA1_HEADER='<openssl/sha.h>' -DDEFAULT_GIT_TEMPLATE_DIR='"/root/share/git-core/templates/"' -DGIT_USER_AGENT='"git/1.3.GIT"' http.c
In file included from http.c:1:
http.h:6:23: error: curl/curl.h: Tiedostoa tai hakemistoa ei ole (no file or directory)
http.h:7:23: error: curl/easy.h: Tiedostoa tai hakemistoa ei ole (no file or directory)
In file included from http.c:1:
http.h:27: error: syntax error before 'CURLcode'
http.h:27: warning: no semicolon at end of struct or union
http.h:29: error: syntax error before '}' token
http.h:33: error: syntax error before 'CURL'
http.h:33: warning: no semicolon at end of struct or union
http.h:36: error: syntax error before 'curl_result'
http.h:36: warning: type defaults to 'int' in declaration of 'curl_result'
http.h:36: warning: data definition has no type or storage class
http.h:43: error: syntax error before '}' token
http.h:85: error: 'CURL_ERROR_SIZE' undeclared here (not in a function)
http.c:163: error: syntax error before '*' token
http.c:164: warning: return type defaults to 'int'
http.c: In function 'get_curl_handle':
http.c:165: error: 'CURL' undeclared (first use in this function)
http.c:165: error: (Each undeclared identifier is reported only once
http.c:165: error: for each function it appears in.)
http.c:165: error: 'result' undeclared (first use in this function)
http.c:165: warning: implicit declaration of function 'curl_easy_init'
http.c:167: warning: implicit declaration of function 'curl_easy_setopt'
http.c:167: error: 'CURLOPT_SSL_VERIFYPEER' undeclared (first use in this function)
http.c:173: error: 'CURLOPT_SSLCERT' undeclared (first use in this function)
http.c:183: error: 'CURLOPT_CAINFO' undeclared (first use in this function)
http.c:184: error: 'CURLOPT_FAILONERROR' undeclared (first use in this function)
http.c:187: error: 'CURLOPT_LOW_SPEED_LIMIT' undeclared (first use in this function)
http.c:189: error: 'CURLOPT_LOW_SPEED_TIME' undeclared (first use in this function)
http.c:193: error: 'CURLOPT_FOLLOWLOCATION' undeclared (first use in this function)
http.c:196: error: 'CURLOPT_VERBOSE' undeclared (first use in this function)
http.c:198: error: 'CURLOPT_USERAGENT' undeclared (first use in this function)
http.c: In function 'http_init':
http.c:210: warning: implicit declaration of function 'curl_slist_append'
http.c:210: warning: assignment makes pointer from integer without a cast
http.c:211: warning: assignment makes pointer from integer without a cast
http.c: In function 'http_cleanup':
http.c:278: error: dereferencing pointer to incomplete type
http.c:279: warning: implicit declaration of function 'curl_easy_cleanup'
http.c:279: error: dereferencing pointer to incomplete type
http.c:280: error: dereferencing pointer to incomplete type
http.c: In function 'get_active_slot':
http.c:311: error: dereferencing pointer to incomplete type
http.c:312: error: dereferencing pointer to incomplete type
http.c:315: error: dereferencing pointer to incomplete type
http.c:316: error: dereferencing pointer to incomplete type
http.c:317: error: dereferencing pointer to incomplete type
http.c:318: error: dereferencing pointer to incomplete type
http.c:324: error: dereferencing pointer to incomplete type
http.c:325: error: dereferencing pointer to incomplete type
http.c:327: error: dereferencing pointer to incomplete type
http.c:332: error: dereferencing pointer to incomplete type
http.c:334: error: dereferencing pointer to incomplete type
http.c:341: error: dereferencing pointer to incomplete type
http.c:342: error: dereferencing pointer to incomplete type
http.c:343: error: dereferencing pointer to incomplete type
http.c:344: error: dereferencing pointer to incomplete type
http.c:345: error: dereferencing pointer to incomplete type
http.c:346: error: dereferencing pointer to incomplete type
http.c:347: error: dereferencing pointer to incomplete type
http.c:347: error: 'CURLOPT_HTTPHEADER' undeclared (first use in this function)
http.c:348: error: dereferencing pointer to incomplete type
http.c:349: error: dereferencing pointer to incomplete type
http.c:349: error: 'CURLOPT_ERRORBUFFER' undeclared (first use in this function)
http.c: In function 'run_active_slot':
http.c:421: error: dereferencing pointer to incomplete type
http.c:422: error: dereferencing pointer to incomplete type
http.c:422: warning: implicit declaration of function 'curl_easy_perform'
http.c:422: error: dereferencing pointer to incomplete type
http.c: In function 'closedown_active_slot':
http.c:431: error: dereferencing pointer to incomplete type
http.c: In function 'release_active_slot':
http.c:437: error: dereferencing pointer to incomplete type
http.c:438: warning: implicit declaration of function 'curl_multi_remove_handle'
http.c:438: error: 'curlm' undeclared (first use in this function)
http.c:438: error: dereferencing pointer to incomplete type
http.c:439: error: dereferencing pointer to incomplete type
http.c:440: error: dereferencing pointer to incomplete type
http.c:442: warning: implicit declaration of function 'fill_active_slots'
http.c: In function 'finish_active_slot':
http.c:448: warning: implicit declaration of function 'curl_easy_getinfo'
http.c:448: error: dereferencing pointer to incomplete type
http.c:448: error: 'CURLINFO_HTTP_CODE' undeclared (first use in this function)
http.c:448: error: dereferencing pointer to incomplete type
http.c:450: error: dereferencing pointer to incomplete type
http.c:451: error: dereferencing pointer to incomplete type
http.c:454: error: dereferencing pointer to incomplete type
http.c:455: error: dereferencing pointer to incomplete type
http.c:455: error: dereferencing pointer to incomplete type
http.c:456: error: dereferencing pointer to incomplete type
http.c:456: error: dereferencing pointer to incomplete type
http.c:460: error: dereferencing pointer to incomplete type
http.c:461: error: dereferencing pointer to incomplete type
http.c:461: error: dereferencing pointer to incomplete type
http.c: In function 'finish_all_active_slots':
http.c:470: error: dereferencing pointer to incomplete type
http.c:474: error: dereferencing pointer to incomplete type
make: *** [http.o] Error 1
^ permalink raw reply
* Re: [PATCH] gitweb: Add git_project_index for generating index.aux
From: Jakub Narebski @ 2006-08-31 14:33 UTC (permalink / raw)
To: git
In-Reply-To: <200608311517.11987.jnareb@gmail.com>
Jakub Narebski wrote:
> This action is not linked from anywhere, one must put p=project_index
> into query string by hand.
Of course it should be a=project_index (or rather ?a=project_index).
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
^ permalink raw reply
* [PATCH] gitweb: Add git_project_index for generating index.aux
From: Jakub Narebski @ 2006-08-31 13:17 UTC (permalink / raw)
To: git
Add git_project_index, which generates index.aux file that can be used
as a source of projects list, instead of generating projects list from
a directory. Using file as a source of projects list allows for some
projects to be not present in gitweb main (project_list) page, and/or
correct project owner info.
This also allows for easy getting list of all available (well, gitweb
available) projects. OPML output offers something similar.
This action is not linked from anywhere, one must put p=project_index
into query string by hand.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
gitweb/gitweb.perl | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index fa7f62a..98193be 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -268,6 +268,7 @@ my %actions = (
# those below don't need $project
"opml" => \&git_opml,
"project_list" => \&git_project_list,
+ "project_index" => \&git_project_index,
);
if (defined $project) {
@@ -2069,6 +2070,30 @@ sub git_project_list {
git_footer_html();
}
+sub git_project_index {
+ my @projects = git_get_projects_list();
+
+ print $cgi->header(
+ -type => 'text/plain',
+ -charset => 'utf-8',
+ -content_disposition => qq(inline; filename="index.aux"));
+
+ foreach my $pr (@projects) {
+ if (!exists $pr->{'owner'}) {
+ $pr->{'owner'} = get_file_owner("$projectroot/$project");
+ }
+
+ my ($path, $owner) = ($pr->{'path'}, $pr->{'owner'});
+ # quote as in CGI::Util::encode, but keep the slash, and use '+' for ' '
+ $path =~ s/([^a-zA-Z0-9_.\-\/ ])/sprintf("%%%02X", ord($1))/eg;
+ $owner =~ s/([^a-zA-Z0-9_.\-\/ ])/sprintf("%%%02X", ord($1))/eg;
+ $path =~ s/ /\+/g;
+ $owner =~ s/ /\+/g;
+
+ print "$path $owner\n";
+ }
+}
+
sub git_summary {
my $descr = git_get_project_description($project) || "none";
my $head = git_get_head_hash($project);
--
1.4.1.1
^ permalink raw reply related
* Re: [PATCH 1/3] daemon.c: introduce daemon's service
From: Franck Bui-Huu @ 2006-08-31 13:07 UTC (permalink / raw)
To: Franck Bui-Huu; +Cc: junkio, git
In-Reply-To: <1157027723594-git-send-email-vagabon.xyz@gmail.com>
Franck Bui-Huu wrote:
> Signed-off-by: Franck Bui-Huu <vagabon.xyz@gmail.com>
> ---
> daemon.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++--------------
> 1 files changed, 61 insertions(+), 17 deletions(-)
>
> diff --git a/daemon.c b/daemon.c
> index 66ec830..ed3a13d 100644
> --- a/daemon.c
> +++ b/daemon.c
> @@ -232,16 +232,57 @@ static char *path_ok(char *dir)
> return NULL; /* Fallthrough. Deny by default */
> }
>
> -static int upload(char *dir)
> +/*
> + * Services we're able to deal with.
> + */
> +static int service_upload_pack(const char *dir, const char *args)
> {
> /* Timeout as string */
> char timeout_buf[64];
> +
> + snprintf(timeout_buf, sizeof timeout_buf, "--timeout=%u", timeout);
> +
> + /* git-upload-pack only ever reads stuff, so this is safe */
> + execl_git_cmd("upload-pack", "--strict", timeout_buf, ".", NULL);
> + return -1;
> +}
> +
> +/* service options */
> +#define NEED_REPO (1<<0)
> +
> +struct service_info {
> + const char *name;
> + int (*fn)(const char *dir, const char *args);
> + int options;
> +};
> +
> +static struct service_info services[] = {
> + { "git-upload-pack", service_upload_pack, NEED_REPO },
> +};
> +
> +static int run_service(char *cmdline)
> +{
> + struct service_info *serv;
> const char *path;
> + size_t len;
> + int i;
>
> - loginfo("Request for '%s'", dir);
> + for (i = 0; i < ARRAY_SIZE(services); i++) {
> + serv = &services[i];
> +
OMG, trailing white spaces !
> + len = strlen(serv->name);
> + if (strncmp(cmdline, serv->name, len))
> + continue;
> + if (cmdline[len] != ' ')
> + continue;
> + goto found;
> + }
> + return -1;
> +found:
> + cmdline += len + 1;
> + path = NULL;
>
> - if (!(path = path_ok(dir)))
> - return -1;
> + loginfo("Request '%s' for '%s'", serv->name, cmdline);
>
> /*
> * Security on the cheap.
> @@ -253,30 +294,33 @@ static int upload(char *dir)
> * path_ok() uses enter_repo() and does whitelist checking.
> * We only need to make sure the repository is exported.
> */
> + if (serv->options & NEED_REPO) {
> + if (!(path = path_ok(cmdline)))
> + return -1;
>
> - if (!export_all_trees && access("git-daemon-export-ok", F_OK)) {
> - logerror("'%s': repository not exported.", path);
> - errno = EACCES;
> - return -1;
> + if (!export_all_trees && access("git-daemon-export-ok", F_OK)) {
> + logerror("'%s': repository not exported.", path);
> + errno = EACCES;
> + return -1;
> + }
> + cmdline += strlen(path) + 1;
> }
> -
> +
ditto
Franck
^ permalink raw reply
* [PATCH 2/3] daemon.c: added upload-tar service
From: Franck Bui-Huu @ 2006-08-31 12:35 UTC (permalink / raw)
To: junkio; +Cc: git, Franck Bui-Huu
In-Reply-To: <11570277231100-git-send-email-vagabon.xyz@gmail.com>
Signed-off-by: Franck Bui-Huu <vagabon.xyz@gmail.com>
---
daemon.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/daemon.c b/daemon.c
index ed3a13d..381e6ae 100644
--- a/daemon.c
+++ b/daemon.c
@@ -247,6 +247,12 @@ static int service_upload_pack(const cha
return -1;
}
+static int service_upload_tar(const char *dir, const char *args)
+{
+ execl_git_cmd("upload-tar", dir, NULL);
+ return -1;
+}
+
/* service options */
#define NEED_REPO (1<<0)
@@ -258,6 +264,7 @@ struct service_info {
static struct service_info services[] = {
{ "git-upload-pack", service_upload_pack, NEED_REPO },
+ { "git-upload-tar", service_upload_tar, NEED_REPO },
};
static int run_service(char *cmdline)
--
1.4.2
^ permalink raw reply related
* [PATCH 3/3] git-tar-tree.c: no need to be in a git repo when using --remote
From: Franck Bui-Huu @ 2006-08-31 12:35 UTC (permalink / raw)
To: junkio; +Cc: git, Franck Bui-Huu
In-Reply-To: <11570277231100-git-send-email-vagabon.xyz@gmail.com>
Signed-off-by: Franck Bui-Huu <vagabon.xyz@gmail.com>
---
builtin-tar-tree.c | 2 ++
git.c | 2 +-
2 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/builtin-tar-tree.c b/builtin-tar-tree.c
index 61a4135..ad1a8a6 100644
--- a/builtin-tar-tree.c
+++ b/builtin-tar-tree.c
@@ -390,6 +390,8 @@ int cmd_tar_tree(int argc, const char **
usage(tar_tree_usage);
if (!strncmp("--remote=", argv[1], 9))
return remote_tar(argc, argv);
+ if (prefix == NULL)
+ prefix = setup_git_directory();
return generate_tar(argc, argv, prefix);
}
diff --git a/git.c b/git.c
index bd07289..c323d30 100644
--- a/git.c
+++ b/git.c
@@ -262,7 +262,7 @@ static void handle_internal_command(int
{ "show", cmd_show, RUN_SETUP | USE_PAGER },
{ "stripspace", cmd_stripspace },
{ "symbolic-ref", cmd_symbolic_ref, RUN_SETUP },
- { "tar-tree", cmd_tar_tree, RUN_SETUP },
+ { "tar-tree", cmd_tar_tree },
{ "zip-tree", cmd_zip_tree, RUN_SETUP },
{ "unpack-objects", cmd_unpack_objects, RUN_SETUP },
{ "update-index", cmd_update_index, RUN_SETUP },
--
1.4.2
^ permalink raw reply related
* [PATCH 0/3] git-daemon: plug new upload-tar command
From: Franck Bui-Huu @ 2006-08-31 12:35 UTC (permalink / raw)
To: junkio; +Cc: git
Here's a simple patchset that basically teach git-daemon about the
upload-tar command added by Junio's commit:
217542640ed219c980fff2b3c307c4520120f20f
With a patched daemon it's now possible to do:
$ git tar-tree --remote=git://host/path/to/repo HEAD > repo.tar
It also creates a 'service' structure to ease future command
integration (like git internal commands handling does). I'm not sure
how usefull it will be, but it improves at least code readability.
Something that may be usefull now is to make git-daemon able to
compress data it sends back...
Franck
---
builtin-tar-tree.c | 2 +
daemon.c | 85 ++++++++++++++++++++++++++++++++++++++++++----------
git.c | 2 +
3 files changed, 71 insertions(+), 18 deletions(-)
^ permalink raw reply
* [PATCH 1/3] daemon.c: introduce daemon's service
From: Franck Bui-Huu @ 2006-08-31 12:35 UTC (permalink / raw)
To: junkio; +Cc: git, Franck Bui-Huu
In-Reply-To: <11570277231100-git-send-email-vagabon.xyz@gmail.com>
Signed-off-by: Franck Bui-Huu <vagabon.xyz@gmail.com>
---
daemon.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 61 insertions(+), 17 deletions(-)
diff --git a/daemon.c b/daemon.c
index 66ec830..ed3a13d 100644
--- a/daemon.c
+++ b/daemon.c
@@ -232,16 +232,57 @@ static char *path_ok(char *dir)
return NULL; /* Fallthrough. Deny by default */
}
-static int upload(char *dir)
+/*
+ * Services we're able to deal with.
+ */
+static int service_upload_pack(const char *dir, const char *args)
{
/* Timeout as string */
char timeout_buf[64];
+
+ snprintf(timeout_buf, sizeof timeout_buf, "--timeout=%u", timeout);
+
+ /* git-upload-pack only ever reads stuff, so this is safe */
+ execl_git_cmd("upload-pack", "--strict", timeout_buf, ".", NULL);
+ return -1;
+}
+
+/* service options */
+#define NEED_REPO (1<<0)
+
+struct service_info {
+ const char *name;
+ int (*fn)(const char *dir, const char *args);
+ int options;
+};
+
+static struct service_info services[] = {
+ { "git-upload-pack", service_upload_pack, NEED_REPO },
+};
+
+static int run_service(char *cmdline)
+{
+ struct service_info *serv;
const char *path;
+ size_t len;
+ int i;
- loginfo("Request for '%s'", dir);
+ for (i = 0; i < ARRAY_SIZE(services); i++) {
+ serv = &services[i];
+
+ len = strlen(serv->name);
+ if (strncmp(cmdline, serv->name, len))
+ continue;
+ if (cmdline[len] != ' ')
+ continue;
+ goto found;
+ }
+ return -1;
+found:
+ cmdline += len + 1;
+ path = NULL;
- if (!(path = path_ok(dir)))
- return -1;
+ loginfo("Request '%s' for '%s'", serv->name, cmdline);
/*
* Security on the cheap.
@@ -253,30 +294,33 @@ static int upload(char *dir)
* path_ok() uses enter_repo() and does whitelist checking.
* We only need to make sure the repository is exported.
*/
+ if (serv->options & NEED_REPO) {
+ if (!(path = path_ok(cmdline)))
+ return -1;
- if (!export_all_trees && access("git-daemon-export-ok", F_OK)) {
- logerror("'%s': repository not exported.", path);
- errno = EACCES;
- return -1;
+ if (!export_all_trees && access("git-daemon-export-ok", F_OK)) {
+ logerror("'%s': repository not exported.", path);
+ errno = EACCES;
+ return -1;
+ }
+ cmdline += strlen(path) + 1;
}
-
+
/*
* We'll ignore SIGTERM from now on, we have a
* good client.
*/
signal(SIGTERM, SIG_IGN);
- snprintf(timeout_buf, sizeof timeout_buf, "--timeout=%u", timeout);
+ return serv->fn(path, cmdline);
- /* git-upload-pack only ever reads stuff, so this is safe */
- execl_git_cmd("upload-pack", "--strict", timeout_buf, ".", NULL);
- return -1;
}
static int execute(struct sockaddr *addr)
{
static char line[1000];
int pktlen, len;
+ int rv;
if (addr) {
char addrbuf[256] = "";
@@ -313,11 +357,11 @@ #endif
if (len && line[len-1] == '\n')
line[--len] = 0;
- if (!strncmp("git-upload-pack ", line, 16))
- return upload(line+16);
+ rv = run_service(line);
+ if (rv < 0)
+ logerror("Protocol error: '%s'", line);
- logerror("Protocol error: '%s'", line);
- return -1;
+ return rv;
}
--
1.4.2
^ permalink raw reply related
* Re: Compiling git-snapshot-20069831
From: Jakub Narebski @ 2006-08-31 12:24 UTC (permalink / raw)
To: git
In-Reply-To: <Pine.LNX.4.63.0608311408350.28360@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin wrote:
> since you do have a recent snapshot, why not try ./configure, as Pasky
> suggested?
>
> BTW I cannot read Finnish, but (...)
So when sending error codes it would be better to set LC_ALL=C (or
equivalent) before producing and sending error message.
> (...) it probably says that you do not have curl
> installed. configure would detect that, and automatically set NO_CURL=1.
Without curl http:// and https:// transports won't work. So you perhaps want
to install curl instead.
>From INSTALL:
Alternatively you can use autoconf generated ./configure script to
set up install paths (via config.mak.autogen), so you can write instead
$ make configure ;# as yourself, if configure does not exist
$ ./configure --prefix=/usr ;# as yourself
$ make all doc ;# as yourself
# make install install-doc ;# as root
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
^ permalink raw reply
* Re: Compiling git-snapshot-20069831
From: Johannes Schindelin @ 2006-08-31 12:09 UTC (permalink / raw)
To: Jorma Karvonen; +Cc: git
In-Reply-To: <44F6D016.4050007@users.sourceforge.net>
Hi,
since you do have a recent snapshot, why not try ./configure, as Pasky
suggested?
BTW I cannot read Finnish, but it probably says that you do not have curl
installed. configure would detect that, and automatically set NO_CURL=1.
Ciao,
Dscho
^ permalink raw reply
* Re: problem with git-cvsserver
From: aonghus @ 2006-08-31 12:04 UTC (permalink / raw)
To: Marco Roeland; +Cc: Martin Langhoff, Junio C Hamano, git, Johannes Schindelin
In-Reply-To: <20060831090333.GA28445@fiberbit.xs4all.nl>
Marco Roeland wrote:
> On Thursday August 31st 2006 at 08:29 uur Martin Langhoff wrote:
>
>
>> [git-cvsserver and trouble with Perl DBI and SQLite]
>>
>> Actually, just looking at my etch dev box, libdbd-sqlite-perl is
>> 0.29-1 and sqlite is 2.8.16-1. Not sure if the difference is
>> significant. Perhaps SQLite v3 has a different invocation / driver
>> name?
>>
>
> Yes, SQLite v2 and SQLite v3 are different and binary incompatible.
>
> However, on Debian 'etch' you can install packages for both versions
> concurrently; most packages for SQLite have either a '2' or a '3' in the
> name. Packages without the number use the "best current choice" which is
> "3" in 'etch' at the moment but was "2" not too long ago.
>
> So at this moment in Debian 'etch' SQLite3 is the default version and
> calling
>
> my $dsn = 'dbi:SQLite:dbname=foo';
>
> will use the SQLite3 driver internally, for which you must have
> installed the "libdbd-sqlite3-perl" package. Just for the record, if
> you'd wanted the older SQLite2 version you would install the
> "libdbd-sqlite2-perl" package and from Perl call "my $dsn =
> 'dbi:SQLite2:dbname=foo';".
>
> I'd guess that you were unfortunate enough to just install some packages
> during the transition and now some parts look for the "2" version
> and other parts for the "3" version. Probably just installing the
> "libdbd-sqlite3-perl" package and upgrading the other sqlite packages
> (from synaptic say to easily find them!) will probably cure your situation.
>
> Incidentally I'd guess that in itself SQLite2 (so version 2) would also
> function perfectly well for git-cvsserver (as would PostgreSQL or
> MySQL), it's probably in this case just a slight version skew between
> packages!
>
Hi,
Thanks for all the help- I have it working now. It was not a fault with
git-cvsserver at all- more like my own stupidity. The problem was that I
had checked the versions on my client machine and forgotten to update
the cvs/git server! Once I updated it and installed the
libdbd-sqlite3-perl package (on the server) everything works as expected.
So, just to confirm, git-cvsserver is working on a debian
testing/unstable machine (acting cvs/git server) with the following
versions:
libdbd-sqlite3-perl (1.12-1)
libdbi-perl (1.51-2)
libsqlite3-0 (3.3.7-1)
perl (5.8.8-6.1)
perl-base (5.8.8-6.1)
Apologies for wasting your time, looks like my caffeine levels are
getting dangerously low...
a
^ permalink raw reply
* Compiling git-snapshot-20069831
From: Jorma Karvonen @ 2006-08-31 12:03 UTC (permalink / raw)
To: git
[-- Attachment #1: Type: text/plain, Size: 125 bytes --]
Hello,
I enclose here the file that includes error messages.
Best regards,
Jorma Karvonen
karvjorm@users.sourceforge.net
[-- Attachment #2: error1.txt --]
[-- Type: text/plain, Size: 6551 bytes --]
Hello,
I tried to compile (with gcc 4.0.3) git-snapshot-20060831 and got the following error messges:
make --prefix=/usr/local
mailinfo.o: In funtion 'convert_to_utf8':
git-snapshot-20060831/mailinfo.c:482: undefined reference to 'libiconv_open'
git-snapshot-20060831/mailinfo.c:503: undefined reference to 'libiconv'
git-snapshot-20060831/mailinfo.c:504: undefined reference to 'libiconv_close'
collect2: ld returned 1 exit status
then I tried make --prefix=/usr/local NEEDS_LIBICONV=1 and got the following error messsages:
In file included from http.c:1:
http.h:6:23: error: curl/curl.h: Tiedostoa tai hakemistoa ei ole
http.h:7:23: error: curl/easy.h: Tiedostoa tai hakemistoa ei ole
In file included from http.c:1:
http.h:27: error: syntax error before 'CURLcode'
http.h:27: warning: no semicolon at end of struct or union
http.h:29: error: syntax error before '}' token
http.h:33: error: syntax error before 'CURL'
http.h:33: warning: no semicolon at end of struct or union
http.h:36: error: syntax error before 'curl_result'
http.h:36: warning: type defaults to 'int' in declaration of 'curl_result'
http.h:36: warning: data definition has no type or storage class
http.h:43: error: syntax error before '}' token
http.h:85: error: 'CURL_ERROR_SIZE' undeclared here (not in a function)
http.c:163: error: syntax error before '*' token
http.c:164: warning: return type defaults to 'int'
http.c: In function 'get_curl_handle':
http.c:165: error: 'CURL' undeclared (first use in this function)
http.c:165: error: (Each undeclared identifier is reported only once
http.c:165: error: for each function it appears in.)
http.c:165: error: 'result' undeclared (first use in this function)
http.c:165: warning: implicit declaration of function 'curl_easy_init'
http.c:167: warning: implicit declaration of function 'curl_easy_setopt'
http.c:167: error: 'CURLOPT_SSL_VERIFYPEER' undeclared (first use in this function)
http.c:173: error: 'CURLOPT_SSLCERT' undeclared (first use in this function)
http.c:183: error: 'CURLOPT_CAINFO' undeclared (first use in this function)
http.c:184: error: 'CURLOPT_FAILONERROR' undeclared (first use in this function)
http.c:187: error: 'CURLOPT_LOW_SPEED_LIMIT' undeclared (first use in this function)
http.c:189: error: 'CURLOPT_LOW_SPEED_TIME' undeclared (first use in this function)
http.c:193: error: 'CURLOPT_FOLLOWLOCATION' undeclared (first use in this function)
http.c:196: error: 'CURLOPT_VERBOSE' undeclared (first use in this function)
http.c:198: error: 'CURLOPT_USERAGENT' undeclared (first use in this function)
http.c: In function 'http_init':
http.c:210: warning: implicit declaration of function 'curl_slist_append'
http.c:210: warning: assignment makes pointer from integer without a cast
http.c:211: warning: assignment makes pointer from integer without a cast
http.c: In function 'http_cleanup':
http.c:278: error: dereferencing pointer to incomplete type
http.c:279: warning: implicit declaration of function 'curl_easy_cleanup'
http.c:279: error: dereferencing pointer to incomplete type
http.c:280: error: dereferencing pointer to incomplete type
http.c: In function 'get_active_slot':
http.c:311: error: dereferencing pointer to incomplete type
http.c:312: error: dereferencing pointer to incomplete type
http.c:315: error: dereferencing pointer to incomplete type
http.c:316: error: dereferencing pointer to incomplete type
http.c:317: error: dereferencing pointer to incomplete type
http.c:318: error: dereferencing pointer to incomplete type
http.c:324: error: dereferencing pointer to incomplete type
http.c:325: error: dereferencing pointer to incomplete type
http.c:327: error: dereferencing pointer to incomplete type
http.c:332: error: dereferencing pointer to incomplete type
http.c:334: error: dereferencing pointer to incomplete type
http.c:341: error: dereferencing pointer to incomplete type
http.c:342: error: dereferencing pointer to incomplete type
http.c:343: error: dereferencing pointer to incomplete type
http.c:344: error: dereferencing pointer to incomplete type
http.c:345: error: dereferencing pointer to incomplete type
http.c:346: error: dereferencing pointer to incomplete type
http.c:347: error: dereferencing pointer to incomplete type
http.c:347: error: 'CURLOPT_HTTPHEADER' undeclared (first use in this function)
http.c:348: error: dereferencing pointer to incomplete type
http.c:349: error: dereferencing pointer to incomplete type
http.c:349: error: 'CURLOPT_ERRORBUFFER' undeclared (first use in this function)
http.c: In function 'run_active_slot':
http.c:421: error: dereferencing pointer to incomplete type
http.c:422: error: dereferencing pointer to incomplete type
http.c:422: warning: implicit declaration of function 'curl_easy_perform'
http.c:422: error: dereferencing pointer to incomplete type
http.c: In function 'closedown_active_slot':
http.c:431: error: dereferencing pointer to incomplete type
http.c: In function 'release_active_slot':
http.c:437: error: dereferencing pointer to incomplete type
http.c:438: warning: implicit declaration of function 'curl_multi_remove_handle'
http.c:438: error: 'curlm' undeclared (first use in this function)
http.c:438: error: dereferencing pointer to incomplete type
http.c:439: error: dereferencing pointer to incomplete type
http.c:440: error: dereferencing pointer to incomplete type
http.c:442: warning: implicit declaration of function 'fill_active_slots'
http.c: In function 'finish_active_slot':
http.c:448: warning: implicit declaration of function 'curl_easy_getinfo'
http.c:448: error: dereferencing pointer to incomplete type
http.c:448: error: 'CURLINFO_HTTP_CODE' undeclared (first use in this function)
http.c:448: error: dereferencing pointer to incomplete type
http.c:450: error: dereferencing pointer to incomplete type
http.c:451: error: dereferencing pointer to incomplete type
http.c:454: error: dereferencing pointer to incomplete type
http.c:455: error: dereferencing pointer to incomplete type
http.c:455: error: dereferencing pointer to incomplete type
http.c:456: error: dereferencing pointer to incomplete type
http.c:456: error: dereferencing pointer to incomplete type
http.c:460: error: dereferencing pointer to incomplete type
http.c:461: error: dereferencing pointer to incomplete type
http.c:461: error: dereferencing pointer to incomplete type
http.c: In function 'finish_all_active_slots':
http.c:470: error: dereferencing pointer to incomplete type
http.c:474: error: dereferencing pointer to incomplete type
make: *** [http.o] Error 1
Best regards,
Jorma Karvonen
^ permalink raw reply
* Re: git-snapshot-20060831 error
From: Petr Baudis @ 2006-08-31 11:19 UTC (permalink / raw)
To: Jorma Karvonen; +Cc: git
In-Reply-To: <44F6C262.8040605@users.sourceforge.net>
Hi,
Dear diary, on Thu, Aug 31, 2006 at 01:05:06PM CEST, I got a letter
where Jorma Karvonen <karvjorm@users.sourceforge.net> said that...
> I tried to compile git, but got the following error:
try doing
make NEEDS_LIBICONV=1
or running ./configure if you have git version new enough. If that
doesn't help, what git version are trying to compile on what kind of
system?
> http://web.maxinetti.fi/maxi.joka/git_snapshot_20060831_error1.png
Please paste error messages as plain text, not screenshots. Thanks.
> Please, can you forward that link to developers of git.
The developers are listening eagerly at git@vger.kernel.org.
Kind regards,
--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
Snow falling on Perl. White noise covering line noise.
Hides all the bugs too. -- J. Putnam
^ permalink raw reply
* Re: Problematic git pack
From: Johannes Schindelin @ 2006-08-31 11:15 UTC (permalink / raw)
To: Sergio Callegari; +Cc: git
In-Reply-To: <44F6A198.4040902@arces.unibo.it>
Hi,
On Thu, 31 Aug 2006, Sergio Callegari wrote:
> Now I am going to have the fixed archive and also a new archive, which I
> restarted from the latest working copy I had of my project.
> Is there any way to automatically do real "surgery" to attach one to the other
> and get a single archive with all the history?
You can "graft" the new onto the old branch:
If <40-hex-chars-old> is the commit id of the youngest commit of the
reconstructed branch, and <40-hex-chars-new> is the commit id of the
initial commit of the newly started branch, you can put this line into
.git/info/grafts:
<40-hex-chars-new> <40-hex-chars-old>
This will make git believe that the initial commit is no initial commit,
but has the old head as single parent. And yes, AFAICT all git tools
support this. I used this technique many times to be able to merge
unrelated developments.
NOTE! This is the quickest way if you want to have the history _locally_.
If you want to be able to distribute it (or synchronize it between your
laptop and PC _with git!_), you can rewrite the history by either
git-rebase, or by using cg-admin-rewritehist if you are using cogito.
Unfortunately, I do not use cogito nor git-rebase, so if you want to walk
that path, others have to help. (And most likely, we'd put the result into
Documentation/howto/.)
Ciao,
Dscho
P.S.: Of course, if you do not insist on a super clean history, you can
fake a merge. Just put <40-hex-chars-old> into .git/MERGE_HEAD and commit.
This will pretend that your new head and your old head were merged, and
the result is the new head. This _should_ even work with git-bisect, but
it is slightly ugly.
^ permalink raw reply
* Re: [PATCH/RFC 0/4] gitweb: ViewVC-like "tree_blame" view
From: Jakub Narebski @ 2006-08-31 9:22 UTC (permalink / raw)
To: git
In-Reply-To: <ed5cke$n4m$1@sea.gmane.org>
Jakub Narebski wrote:
> Josef Weidendorfer wrote:
>
>> On Thursday 31 August 2006 02:18, Jakub Narebski wrote:
>>> Ooops, I forgot to explain this. Strike-through, which actually should
>>> be using different color like red for example means that the file has
>>> 1-commit long history, i.e. it just appeared in given commit.
>>
>> Seems useful. Perhaps better green. And red for...
>> (As you talk about "just appeared") What's about deleted files, similar
>> to attic in CVS? It could be quite useful to provide an alternate
>> tree-blame mode including deleted files; where the given commit
>> would specify the deletion.
>
> Deletion, or renaming.
>
> Actually the currently used implementation (2-items max length history for
> each file) doesn't allow for that. The other two implementations (you can
> choose other 2 implementations by changing 'rev-list' in "my $version =
> shift || 'rev-list'" to 'diff-tree' or 'ls-tree') can do this. I think it
> would be perhaps easiest with git-ls-tree, if git-ls-tree would acquire
> --stdin option, similar to git-diff-tree...
Actually, unless you list only "accidental" deleted files, i.e. the ones
encountered during "blaming" all the files in given directory, you would
need to go all the way back to the root to be sure that all deleted or
renamed files are listed.
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
^ permalink raw reply
* Re: [PATCH/RFC 0/4] gitweb: ViewVC-like "tree_blame" view
From: Jakub Narebski @ 2006-08-31 9:20 UTC (permalink / raw)
To: git
In-Reply-To: <20060831082002.GT8856@cip.informatik.uni-erlangen.de>
Thomas Glanzmann wrote:
>> In response to Thomas Glanzmann (or rather a friend of his) request,
>> here is series of patches which adds to tree view information about
>> when last time and by whom was given file or directory touched.
>
> thanks, I bounced the messages to him.
Just to note: this is proof of concept. The final implementation should have
engine written in C, in "core git", like git-blame. Currently this is very
expensive, so I didn't made gitweb with tree_blame available...
BTW. my reply to the first message have link to "screenshot" (saved view of
page to HTML) of the output.
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
^ permalink raw reply
* Re: problem with git-cvsserver
From: Marco Roeland @ 2006-08-31 9:03 UTC (permalink / raw)
To: Martin Langhoff; +Cc: Junio C Hamano, aonghus, git, Johannes Schindelin
In-Reply-To: <46a038f90608301329n14df4dd2tb1563cc48662cd14@mail.gmail.com>
On Thursday August 31st 2006 at 08:29 uur Martin Langhoff wrote:
> [git-cvsserver and trouble with Perl DBI and SQLite]
>
> Actually, just looking at my etch dev box, libdbd-sqlite-perl is
> 0.29-1 and sqlite is 2.8.16-1. Not sure if the difference is
> significant. Perhaps SQLite v3 has a different invocation / driver
> name?
Yes, SQLite v2 and SQLite v3 are different and binary incompatible.
However, on Debian 'etch' you can install packages for both versions
concurrently; most packages for SQLite have either a '2' or a '3' in the
name. Packages without the number use the "best current choice" which is
"3" in 'etch' at the moment but was "2" not too long ago.
So at this moment in Debian 'etch' SQLite3 is the default version and
calling
my $dsn = 'dbi:SQLite:dbname=foo';
will use the SQLite3 driver internally, for which you must have
installed the "libdbd-sqlite3-perl" package. Just for the record, if
you'd wanted the older SQLite2 version you would install the
"libdbd-sqlite2-perl" package and from Perl call "my $dsn =
'dbi:SQLite2:dbname=foo';".
I'd guess that you were unfortunate enough to just install some packages
during the transition and now some parts look for the "2" version
and other parts for the "3" version. Probably just installing the
"libdbd-sqlite3-perl" package and upgrading the other sqlite packages
(from synaptic say to easily find them!) will probably cure your situation.
Incidentally I'd guess that in itself SQLite2 (so version 2) would also
function perfectly well for git-cvsserver (as would PostgreSQL or
MySQL), it's probably in this case just a slight version skew between
packages!
--
Marco Roeland
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox