Git development
 help / color / mirror / Atom feed
* Re: maybe breakage with latest git-pull and http protocol
From: Randal L. Schwartz @ 2005-10-15 13:03 UTC (permalink / raw)
  To: Daniel Barkalow; +Cc: Junio C Hamano, git
In-Reply-To: <Pine.LNX.4.63.0510141543030.23242@iabervon.org>

>>>>> "Daniel" == Daniel Barkalow <barkalow@iabervon.org> writes:

Daniel> Can you give a general description of what happens? I've
Daniel> noticed that I sometimes get spurious error messages that
Daniel> don't actually affect the download, which I haven't tracked
Daniel> down yet.

OK, it happened this morning.  While syncing to update from
yesterday's version, I got:

    localhost:~/MIRROR/git-GIT % git-pull
    Fetching refs/heads/master from http://www.kernel.org/pub/scm/git/git.git using http
    Getting alternates list
    got 4546738b58a0134eef154231b07d60fc174d56e3
    walk 4546738b58a0134eef154231b07d60fc174d56e3
    got d402d5566fdf226697a386dfb9858e5d954e9b91
    got 873d8e5652c06c3891278f33546c437efc209c2d
    walk d402d5566fdf226697a386dfb9858e5d954e9b91
    error: 
    Getting pack list
    got 0207ab18a3876249a928e7539d8f594a4f6921f1
    got 9f7534accdf34b980a2de670cb1009dd84ee56c4
    error: Unable to find 5ad4a2766d34569f3a1278544ab64978fab14cc8 under http://www.kernel.org/pub/scm/git/git.git/

    Cannot obtain needed blob 5ad4a2766d34569f3a1278544ab64978fab14cc8
    while processing commit d402d5566fdf226697a386dfb9858e5d954e9b91.

Definitely broken.  But I can "rsync" just fine.

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

^ permalink raw reply

* Re: [PATCH] Some curl versions lack curl_easy_duphandle()
From: Johannes Schindelin @ 2005-10-15 11:50 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Nick Hengeveld, git
In-Reply-To: <7vmzlbpbwu.fsf@assigned-by-dhcp.cox.net>

Hi,

On Fri, 14 Oct 2005, Junio C Hamano wrote:

> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> > This patch looks bigger than it really is: The code to get the
> > default handle was refactored into a function, and is called
> > instead of curl_easy_duphandle() if that does not exist.
> 
> I'd like to take Nick's config file patch first, which
> unfortunately interferes with your patch.  I'd hate to ask you
> this, but could you rebase it on top of Nick's patch, [...]

No need to hate it. Here comes the rebased patch, and this time, I 
actually tested it a bit.

---

diff --git a/http-fetch.c b/http-fetch.c
index 784aedf..40bd0b4 100644
--- a/http-fetch.c
+++ b/http-fetch.c
@@ -18,6 +18,10 @@
 #define curl_global_init(a) do { /* nothing */ } while(0)
 #endif
 
+#if LIBCURL_VERSION_NUM < 0x070c04
+#define NO_CURL_EASY_DUPHANDLE
+#endif
+
 #define PREV_BUF_SIZE 4096
 #define RANGE_HEADER_SIZE 30
 
@@ -28,7 +32,9 @@ static int data_received;
 static int max_requests = -1;
 static CURLM *curlm;
 #endif
+#ifndef NO_CURL_EASY_DUPHANDLE
 static CURL *curl_default;
+#endif
 static struct curl_slist *pragma_header;
 static struct curl_slist *no_pragma_header;
 static struct curl_slist *no_range_header;
@@ -87,8 +93,12 @@ static struct active_request_slot *activ
 
 static int curl_ssl_verify = -1;
 static char *ssl_cert = NULL;
+#if LIBCURL_VERSION_NUM >= 0x070902
 static char *ssl_key = NULL;
+#endif
+#if LIBCURL_VERSION_NUM >= 0x070908
 static char *ssl_capath = NULL;
+#endif
 static char *ssl_cainfo = NULL;
 
 struct buffer
@@ -213,6 +223,32 @@ void process_curl_messages();
 void process_request_queue();
 #endif
 
+static CURL* get_curl_handle()
+{
+	CURL* result = curl_easy_init();
+
+	curl_easy_setopt(result, CURLOPT_SSL_VERIFYPEER, curl_ssl_verify);
+#if LIBCURL_VERSION_NUM >= 0x070907
+	curl_easy_setopt(result, CURLOPT_NETRC, CURL_NETRC_OPTIONAL);
+#endif
+
+	if (ssl_cert != NULL)
+		curl_easy_setopt(result, CURLOPT_SSLCERT, ssl_cert);
+#if LIBCURL_VERSION_NUM >= 0x070902
+	if (ssl_key != NULL)
+		curl_easy_setopt(result, CURLOPT_SSLKEY, ssl_key);
+#endif
+#if LIBCURL_VERSION_NUM >= 0x070908
+	if (ssl_capath != NULL)
+		curl_easy_setopt(result, CURLOPT_CAPATH, ssl_capath);
+#endif
+	if (ssl_cainfo != NULL)
+		curl_easy_setopt(result, CURLOPT_CAINFO, ssl_cainfo);
+	curl_easy_setopt(result, CURLOPT_FAILONERROR, 1);
+
+	return result;
+}
+
 struct active_request_slot *get_active_slot()
 {
 	struct active_request_slot *slot = active_queue_head;
@@ -235,7 +271,11 @@ struct active_request_slot *get_active_s
 	}
 	if (slot == NULL) {
 		newslot = xmalloc(sizeof(*newslot));
+#ifdef NO_CURL_EASY_DUPHANDLE
+		newslot->curl = get_curl_handle();
+#else
 		newslot->curl = curl_easy_duphandle(curl_default);
+#endif
 		newslot->in_use = 0;
 		newslot->next = NULL;
 
@@ -1202,24 +1242,10 @@ int main(int argc, char **argv)
 	no_pragma_header = curl_slist_append(no_pragma_header, "Pragma:");
 	no_range_header = curl_slist_append(no_range_header, "Range:");
 
-	curl_default = curl_easy_init();
-
-	curl_easy_setopt(curl_default, CURLOPT_SSL_VERIFYPEER, curl_ssl_verify);
-#if LIBCURL_VERSION_NUM >= 0x070907
-	curl_easy_setopt(curl_default, CURLOPT_NETRC, CURL_NETRC_OPTIONAL);
+#ifndef NO_CURL_EASY_DUPHANDLE
+	curl_default = get_curl_handle();
 #endif
 
-	if (ssl_cert != NULL)
-		curl_easy_setopt(curl_default, CURLOPT_SSLCERT, ssl_cert);
-	if (ssl_key != NULL)
-		curl_easy_setopt(curl_default, CURLOPT_SSLKEY, ssl_key);
-	if (ssl_capath != NULL)
-		curl_easy_setopt(curl_default, CURLOPT_CAPATH, ssl_capath);
-	if (ssl_cainfo != NULL)
-		curl_easy_setopt(curl_default, CURLOPT_CAINFO, ssl_cainfo);
-
-	curl_easy_setopt(curl_default, CURLOPT_FAILONERROR, 1);
-
 	alt = xmalloc(sizeof(*alt));
 	alt->base = url;
 	alt->got_indices = 0;
@@ -1233,7 +1259,9 @@ int main(int argc, char **argv)
 	curl_slist_free_all(pragma_header);
 	curl_slist_free_all(no_pragma_header);
 	curl_slist_free_all(no_range_header);
+#ifndef NO_CURL_EASY_DUPHANDLE
 	curl_easy_cleanup(curl_default);
+#endif
 	slot = active_queue_head;
 	while (slot != NULL) {
 		curl_easy_cleanup(slot->curl);

^ permalink raw reply related

* [ANNOUNCE] Stacked GIT 0.7.1
From: Catalin Marinas @ 2005-10-15 10:59 UTC (permalink / raw)
  To: GIT

Stacked GIT 0.7.1 release is available from http://www.procode.org/stgit/

This is a bug-fix/optimisation release, no new features were added.

StGIT is a Python application providing similar functionality to Quilt
(i.e. pushing/popping patches to/from a stack) on top of GIT. These
operations are performed using GIT commands and the patches are stored
as GIT commit objects, allowing easy merging of the StGIT patches into
other repositories using standard GIT functionality.

What's new in this release (the full ChangeLog is in the archive):

      * 'push' command optimisation - git-apply will be tried first,
        falling back to a three-way merge if it does not succeed
      * escape punctuation in the parsed e-mail addresses to avoid
        problems when passing the environment to the GIT commands

-- 
Catalin

^ permalink raw reply

* Re: What's in git.git repository
From: Sven Verdoolaege @ 2005-10-15 10:03 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git
In-Reply-To: <7vwtkfpbyk.fsf@assigned-by-dhcp.cox.net>

On Fri, Oct 14, 2005 at 10:48:35PM -0700, Junio C Hamano wrote:
> I'd have this graduate to the "master" branch after some more
> testing, only if people are interested in it; otherwise I'm
> thinking about dropping this (I am not particularly interested
> in this enhancement myself).

Dereferencing of tags to trees could be interesting for tools
such as dirdiff.  Of course, you can always do the dereferencing
yourself and I'm planning on rewriting it in C anyway.

skimo

^ permalink raw reply

* Re: [PATCH] Some curl versions lack curl_easy_duphandle()
From: Junio C Hamano @ 2005-10-15  5:49 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Nick Hengeveld, git
In-Reply-To: <Pine.LNX.4.63.0510150038550.2807@wbgn013.biozentrum.uni-wuerzburg.de>

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> This patch looks bigger than it really is: The code to get the
> default handle was refactored into a function, and is called
> instead of curl_easy_duphandle() if that does not exist.

I'd like to take Nick's config file patch first, which
unfortunately interferes with your patch.  I'd hate to ask you
this, but could you rebase it on top of Nick's patch, and...

> Tested once.

maybe repost after some more testing?  And I'd like to ask
either Nick or Daniel to give an ack on the rebased one.

^ permalink raw reply

* What's in git.git repository
From: Junio C Hamano @ 2005-10-15  5:48 UTC (permalink / raw)
  To: git

The "master" branch has been updated with some "obviously
correct" updates, as usual.

In proposed updates, there are currently two topics.

One is the new tag dereference notation and showing the deref'ed
tag from the remote side via ls-remote I posted last night. 

I'd have this graduate to the "master" branch after some more
testing, only if people are interested in it; otherwise I'm
thinking about dropping this (I am not particularly interested
in this enhancement myself).

Another is the improved handling of funny characters in
pathnames.  The final notation follows what Paul Eggert outlined
in his message a couple of days ago -- C-style quoted string
enclosed in a pair of double-quotes.  I have not written formal
set of tests, but updated git-diff-*, git-ls-files, git-ls-tree,
and git-apply seem to do the right thing with my limited
hand-tests.

^ permalink raw reply

* [PATCH] Typo fixes.
From: Pavel Roskin @ 2005-10-15  4:59 UTC (permalink / raw)
  To: git, Petr Baudis

Signed-off-by: Pavel Roskin <proski@gnu.org>


---

 Documentation/make-cogito-asciidoc |    2 +-
 README.osx                         |    2 +-
 cg-commit                          |    2 +-
 cg-help                            |    2 +-
 cg-merge                           |    6 +++---
 cg-mkpatch                         |    4 ++--
 cg-restore                         |    2 +-
 7 files changed, 10 insertions(+), 10 deletions(-)

applies-to: a216c765a79537dd95d3ef4ac619e5968496bfb9
5324919b894f5a39436b3bdb163037c3a76a41cb
diff --git a/Documentation/make-cogito-asciidoc b/Documentation/make-cogito-asciidoc
index fc8111e..3a0d337 100755
--- a/Documentation/make-cogito-asciidoc
+++ b/Documentation/make-cogito-asciidoc
@@ -119,7 +119,7 @@ LOCATION::
 
 COMMIT_ID, FROM_ID, TO_ID, BASE_COMMIT::
 	Indicates an ID resolving to a commit. The following expressions can
-	be used interchangably as IDs:
+	be used interchangeably as IDs:
 	- empty string, 'this' or 'HEAD' (current HEAD)
 	- branch name (as registered with $(man 1 cg-branch-add))
 	- tag name (as registered with $(man 1 cg-tag))
diff --git a/README.osx b/README.osx
index 8385cde..e82ef79 100644
--- a/README.osx
+++ b/README.osx
@@ -26,6 +26,6 @@ Recommendations:
 The gnu versions of "stat" and "date" are preferred over their BSD
 variants.
 
-"patch", "diff", "merge", "curl" and "rysnc" are required.  OS X.4
+"patch", "diff", "merge", "curl" and "rsync" are required.  OS X.4
 includes recent versions of these tools.  If you are not running X.4,
 you may wish to check this.
diff --git a/cg-commit b/cg-commit
index 4345bd5..83dcbe8 100755
--- a/cg-commit
+++ b/cg-commit
@@ -42,7 +42,7 @@
 # -f::
 #	Force the commit even when there's "nothing to commit", that is
 #	the tree is the same as the last time you committed, no changes
-#	happenned.
+#	happened.
 #
 # -N::
 #	Don't add the files to the object database, just update the caches
diff --git a/cg-help b/cg-help
index 62fb112..83b1a3f 100755
--- a/cg-help
+++ b/cg-help
@@ -97,7 +97,7 @@ $(print_command_listing $REGULAR_COMMAND
 Advanced (low-level or dangerous) commands:
 $(print_command_listing $ADVANCED_COMMANDS)
 
-These expressions can be used interchangably as "ID"s:
+These expressions can be used interchangeably as "ID"s:
 	empty string, "this" or "HEAD" (current HEAD)
 	branch name (as registered with cg-branch-add)
 	tag name (as registered with cg-tag)
diff --git a/cg-merge b/cg-merge
index 2770a9d..ee92651 100755
--- a/cg-merge
+++ b/cg-merge
@@ -40,7 +40,7 @@
 #
 # -c::
 #	Parameter specifies that you want to have tree merge never
-#	autocomitted, but want to review and commit it manually. This will
+#	autocommitted, but want to review and commit it manually. This will
 #	basically make cg-merge always behave like there were conflicts
 #	during the merge.
 #
@@ -52,7 +52,7 @@
 #	arguments:
 #		BRANCHNAME BASE CURHEAD MERGEDHEAD MERGETYPE
 #	MERGETYPE is either "forward" or "tree". The merge is
-#	cancelled if the script returns non-zero exit code.
+#	canceled if the script returns non-zero exit code.
 #
 # $GIT_DIR/hooks/merge-post::
 #	If the file exists and is executable it will be executed after
@@ -71,7 +71,7 @@ _git_requires_root=1
 prehook()
 {
 	if [ -x $_git/hooks/merge-pre ]; then
-		$_git/hooks/merge-pre "$branchname" "$base" "$head" "$branch" "$@" || die "merge cancelled by hook"
+		$_git/hooks/merge-pre "$branchname" "$base" "$head" "$branch" "$@" || die "merge canceled by hook"
 	fi
 }
 
diff --git a/cg-mkpatch b/cg-mkpatch
index 0cd136f..42a5125 100755
--- a/cg-mkpatch
+++ b/cg-mkpatch
@@ -10,13 +10,13 @@
 # -d DIRNAME::
 #	Split the patches to separate files with their names in the
 #	format "%02d.patch", created in directory DIRNAME (will be
-#	created if non-existant). Note that this makes sense only
+#	created if non-existent). Note that this makes sense only
 #	when generating patch series, that is when you use the -r
 #	argument.
 #
 # -f FORMAT::
 #	Format string used for generating the patch filename when
-#	outputting the splitted-out patches (that is, passed the -d
+#	outputting the split-out patches (that is, passed the -d
 #	option). This is by default "%s/%02d-%s.patch". The first %s
 #	represents the directory name and %d represents the patch
 #	sequence number. The last %s is mangled first line of the
diff --git a/cg-restore b/cg-restore
index d4d49e9..8e61c92 100755
--- a/cg-restore
+++ b/cg-restore
@@ -14,7 +14,7 @@
 # This command is complementary to the `cg-reset` command, which
 # forcefully abandons all the changes in the working tree and
 # restores everything to a proper state (including unseeking,
-# cancelling merge in progress and rebuilding indexes).
+# canceling merge in progress and rebuilding indexes).
 #
 # OPTIONS
 # -------
---
0.99.8.GIT

-- 
Regards,
Pavel Roskin

^ permalink raw reply related

* [PATCH] Fix argument processing for cg-Xmergefile.
From: Pavel Roskin @ 2005-10-15  4:27 UTC (permalink / raw)
  To: Petr Baudis, git

Positional arguments are no longer available.  Use ARGS array instead.
Use variables with distinctive names for every argument.
Improve message for the cases cg-Xmergefile cannot handle.

Signed-off-by: Pavel Roskin <proski@gnu.org>
---

 cg-Xmergefile |   61 ++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 34 insertions(+), 27 deletions(-)

applies-to: f12b3dd9b47f28842943471719e7f5d24727b178
546a93bdec1cd37516daf21137ed6fa3572b50cb
diff --git a/cg-Xmergefile b/cg-Xmergefile
index 16a2f69..5bff254 100755
--- a/cg-Xmergefile
+++ b/cg-Xmergefile
@@ -24,6 +24,13 @@
 
 . ${COGITO_LIB}cg-Xlib || exit 1
 
+id0="${ARGS[0]}"
+id1="${ARGS[1]}"
+id2="${ARGS[2]}"
+file="${ARGS[3]}"
+mode0="${ARGS[4]}"
+mode1="${ARGS[5]}"
+mode2="${ARGS[6]}"
 
 error()
 {
@@ -37,37 +44,37 @@ warning()
 }
 
 
-case "${1:-.}${2:-.}${3:-.}" in
+case "${id0:-.}${id1:-.}${id2:-.}" in
 #
 # Deleted in both or deleted in one and unchanged in the other
 #
-"$1.." | "$1.$1" | "$1$1.")
-	#echo "Removing $4"
-	if test -f "$4"; then
-		rm -f -- "$4"
+"$id0.." | "$id0.$id0" | "$id0$id0.")
+	#echo "Removing $file"
+	if test -f "$file"; then
+		rm -f -- "$file"
 	fi &&
-		exec git-update-index --remove -- "$4"
+		exec git-update-index --remove -- "$file"
 	;;
 
 #
 # Added in one.
 #
-".$2." | "..$3" )
-	#echo "Adding $4"
-	git-update-index --add --cacheinfo "$6$7" "$2$3" "$4" &&
-		exec git-checkout-index -u -f -- "$4"
+".$id1." | "..$id2" )
+	#echo "Adding $file"
+	git-update-index --add --cacheinfo "$mode1$mode2" "$id1$id2" "$file" &&
+		exec git-checkout-index -u -f -- "$file"
 	;;
 
 #
 # Added in both (check for same permissions).
 #
-".$3$2")
-	#echo "Adding $4"
-	git-update-index --add --cacheinfo "$6" "$2" "$4" &&
-		git-checkout-index -u -f -- "$4"
+".$id2$id1")
+	#echo "Adding $file"
+	git-update-index --add --cacheinfo "$mode1" "$id1" "$file" &&
+		git-checkout-index -u -f -- "$file"
 	ret=$?
-	if [ "$6" != "$7" ]; then
-		error "$4: added in both branches, permissions conflict $6->$7"
+	if [ "$mode1" != "$mode2" ]; then
+		error "$file: added in both branches, permissions conflict $mode1->$mode2"
 		exit 1
 	fi
 	exit $ret
@@ -76,21 +83,21 @@ case "${1:-.}${2:-.}${3:-.}" in
 #
 # Modified in both, but differently.
 #
-"$1$2$3")
-	echo "... Auto-merging $4"
-	orig=$(git-unpack-file $1)
-	src2=$(git-unpack-file $3)
+"$id0$id1$id2")
+	echo "... Auto-merging $file"
+	orig=$(git-unpack-file $id0)
+	src2=$(git-unpack-file $id2)
 
 	# We reset the index to the first branch, making
 	# git-diff-file useful
-	git-update-index --add --cacheinfo "$6" "$2" "$4"
-		git-checkout-index -u -f -- "$4" &&
-		merge "$4" "$orig" "$src2"
+	git-update-index --add --cacheinfo "$mode1" "$id1" "$file"
+		git-checkout-index -u -f -- "$file" &&
+		merge "$file" "$orig" "$src2"
 	ret=$?
 	rm -f -- "$orig" "$src2"
 
-	if [ "$6" != "$7" ]; then
-		error "Permissions conflict: $5->$6,$7."
+	if [ "$mode1" != "$mode2" ]; then
+		error "Permissions conflict: $mode0->$mode1,$mode2."
 		ret=1
 	fi
 
@@ -100,11 +107,11 @@ case "${1:-.}${2:-.}${3:-.}" in
 		#error "Auto-merge failed"
 		exit 1
 	fi
-	exec git-update-index -- "$4"
+	exec git-update-index -- "$file"
 	;;
 
 *)
-	error "$4: Not handling case $1 -> $2 -> $3"
+	error "$file: Not handling case: ${id0:-empty} -> ${id1:-empty} -> ${id2:-empty}"
 	;;
 esac
 exit 1
---
0.99.8.GIT


-- 
Regards,
Pavel Roskin

^ permalink raw reply related

* [PATCH] Some curl versions lack curl_easy_duphandle()
From: Johannes Schindelin @ 2005-10-14 22:39 UTC (permalink / raw)
  To: git, junkio

This patch looks bigger than it really is: The code to get the default handle
was refactored into a function, and is called instead of curl_easy_duphandle()
if that does not exist.

Tested once.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>

---

 http-fetch.c |   73 +++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 49 insertions(+), 24 deletions(-)

applies-to: 63f8082177fa17ae2aadd5ab417758f3d53456d8
1d9c990c46e306b6310fda8ff94bca2feccfbd99
diff --git a/http-fetch.c b/http-fetch.c
index 0aba891..5f1f7f9 100644
--- a/http-fetch.c
+++ b/http-fetch.c
@@ -18,6 +18,10 @@
 #define curl_global_init(a) do { /* nothing */ } while(0)
 #endif
 
+#if LIBCURL_VERSION_NUM < 0x070c04
+#define NO_CURL_EASY_DUPHANDLE
+#endif
+
 #define PREV_BUF_SIZE 4096
 #define RANGE_HEADER_SIZE 30
 
@@ -28,7 +32,9 @@ static int data_received;
 static int max_requests = DEFAULT_MAX_REQUESTS;
 static CURLM *curlm;
 #endif
+#ifndef NO_CURL_EASY_DUPHANDLE
 static CURL *curl_default;
+#endif
 static struct curl_slist *pragma_header;
 static struct curl_slist *no_pragma_header;
 static struct curl_slist *no_range_header;
@@ -87,8 +93,12 @@ static struct active_request_slot *activ
 
 static int curl_ssl_verify;
 static char *ssl_cert;
+#if LIBCURL_VERSION_NUM >= 0x070902
 static char *ssl_key;
+#endif
+#if LIBCURL_VERSION_NUM >= 0x070908
 static char *ssl_capath;
+#endif
 static char *ssl_cainfo;
 
 struct buffer
@@ -143,6 +153,37 @@ void process_curl_messages();
 void process_request_queue();
 #endif
 
+CURL* get_curl_handle()
+{
+	CURL* result = curl_easy_init();
+
+	curl_ssl_verify = getenv("GIT_SSL_NO_VERIFY") ? 0 : 1;
+	curl_easy_setopt(result, CURLOPT_SSL_VERIFYPEER, curl_ssl_verify);
+#if LIBCURL_VERSION_NUM >= 0x070907
+	curl_easy_setopt(result, CURLOPT_NETRC, CURL_NETRC_OPTIONAL);
+#endif
+
+	if ((ssl_cert = getenv("GIT_SSL_CERT")) != NULL) {
+		curl_easy_setopt(result, CURLOPT_SSLCERT, ssl_cert);
+	}
+#if LIBCURL_VERSION_NUM >= 0x070902
+	if ((ssl_key = getenv("GIT_SSL_KEY")) != NULL) {
+		curl_easy_setopt(result, CURLOPT_SSLKEY, ssl_key);
+	}
+#endif
+#if LIBCURL_VERSION_NUM >= 0x070908
+	if ((ssl_capath = getenv("GIT_SSL_CAPATH")) != NULL) {
+		curl_easy_setopt(result, CURLOPT_CAPATH, ssl_capath);
+	}
+#endif
+	if ((ssl_cainfo = getenv("GIT_SSL_CAINFO")) != NULL) {
+		curl_easy_setopt(result, CURLOPT_CAINFO, ssl_cainfo);
+	}
+	curl_easy_setopt(result, CURLOPT_FAILONERROR, 1);
+
+	return result;
+}
+
 struct active_request_slot *get_active_slot()
 {
 	struct active_request_slot *slot = active_queue_head;
@@ -165,7 +206,11 @@ struct active_request_slot *get_active_s
 	}
 	if (slot == NULL) {
 		newslot = xmalloc(sizeof(*newslot));
+#ifdef NO_CURL_EASY_DUPHANDLE
+		newslot->curl = get_curl_handle();
+#else
 		newslot->curl = curl_easy_duphandle(curl_default);
+#endif
 		newslot->in_use = 0;
 		newslot->next = NULL;
 
@@ -1098,32 +1143,10 @@ int main(int argc, char **argv)
 	no_pragma_header = curl_slist_append(no_pragma_header, "Pragma:");
 	no_range_header = curl_slist_append(no_range_header, "Range:");
 
-	curl_default = curl_easy_init();
-
-	curl_ssl_verify = getenv("GIT_SSL_NO_VERIFY") ? 0 : 1;
-	curl_easy_setopt(curl_default, CURLOPT_SSL_VERIFYPEER, curl_ssl_verify);
-#if LIBCURL_VERSION_NUM >= 0x070907
-	curl_easy_setopt(curl_default, CURLOPT_NETRC, CURL_NETRC_OPTIONAL);
+#ifndef NO_CURL_EASY_DUPHANDLE
+	curl_default = get_curl_handle();
 #endif
 
-	if ((ssl_cert = getenv("GIT_SSL_CERT")) != NULL) {
-		curl_easy_setopt(curl_default, CURLOPT_SSLCERT, ssl_cert);
-	}
-#if LIBCURL_VERSION_NUM >= 0x070902
-	if ((ssl_key = getenv("GIT_SSL_KEY")) != NULL) {
-		curl_easy_setopt(curl_default, CURLOPT_SSLKEY, ssl_key);
-	}
-#endif
-#if LIBCURL_VERSION_NUM >= 0x070908
-	if ((ssl_capath = getenv("GIT_SSL_CAPATH")) != NULL) {
-		curl_easy_setopt(curl_default, CURLOPT_CAPATH, ssl_capath);
-	}
-#endif
-	if ((ssl_cainfo = getenv("GIT_SSL_CAINFO")) != NULL) {
-		curl_easy_setopt(curl_default, CURLOPT_CAINFO, ssl_cainfo);
-	}
-	curl_easy_setopt(curl_default, CURLOPT_FAILONERROR, 1);
-
 	alt = xmalloc(sizeof(*alt));
 	alt->base = url;
 	alt->got_indices = 0;
@@ -1137,7 +1160,9 @@ int main(int argc, char **argv)
 	curl_slist_free_all(pragma_header);
 	curl_slist_free_all(no_pragma_header);
 	curl_slist_free_all(no_range_header);
+#ifndef NO_CURL_EASY_DUPHANDLE
 	curl_easy_cleanup(curl_default);
+#endif
 	slot = active_queue_head;
 	while (slot != NULL) {
 		curl_easy_cleanup(slot->curl);
---
0.99.8.GIT

^ permalink raw reply related

* [ANNOUNCE qgit-0.96]
From: Marco Costalba @ 2005-10-14 20:28 UTC (permalink / raw)
  To: git

Hi all,


What is this?

qgit, a git GUI viewer.

With qgit you will be able to browse revisions history, view patch content and changed files, 
graphically following different development branches. Main features are:

 - View revisions, diffs, files history, files annotation.

 - Commit changes visually cherry picking modified files.

 - Apply or format patch series from selected commits, drag and
   drop commits between two instances of qgit.

 - qgit implements a GUI for the most common StGIT commands like push/pop
   and apply/format patches. You can also create new patches or refresh 
   current top one using the same semantics of git commit, i.e. cherry picking
   single modified files.



New in this release

qgit-0.96 implements various suggestions from the list regarding better UI.

Main change is diff viewer implemented as a (bottom) dockable window, so now you can see
revision's description and patch in one view. It is always possible to maximize diff viewer to
browse the path at full screen.

Others updates are speed-up of file names on demand loading and annotation and a better StGIT
integration.

Also fixed some issues about qgit color scheme: qgit colors are now _all_ inerithed by platform,
no more hardcoded ones, so colors are full customizable with proper platform tools.

Anyhow, this is how qgit is meant to be seen, at least by me ;-)
    http://digilander.libero.it/mcostalba/qgit_colors.png


A NOTE: Pasky said:

>* Could you make the grey background for odd commits span to the whole
>line, including the commit graph?

I've done it, but I am not sure about final result, so I've stripped the code from release
version, in any case this is the patch:


--- a/src/mainimpl.cpp
+++ b/src/mainimpl.cpp
@@ -68,7 +68,7 @@
 #define DEF_AUTH_COL_WIDTH	200
 #define DEF_TIME_COL_WIDTH	100
 
-#define IS_INFO_COL(x)  (x == TIME_COL || x == LOG_COL || x == AUTH_COL)
+#define IS_INFO_COL(x)  (x == TIME_COL || x == LOG_COL || x == AUTH_COL || x == GRAPH_COL)
 
 QColor ODD_LINE_COL;
 QColor EVEN_LINE_COL;



Installation

Download from: http://prdownloads.sourceforge.net/qgit/qgit-0.96.tar.bz2?download
GIT archive: cg-clone http://digilander.libero.it/mcostalba/qgit.git

You need scons and qt-mt developer libs, version 3.3.4 or better, already installed.
qgit is NOT compatible with Qt4.
On some platforms (Debian) you should set QTDIR before to compile.

- unpack tar file
- make
- make install

qgit will be installed in $HOME/bin


Changelog

- color scheme is no more hardcoded but inerithed from platform

- rewritten diff viewer as a bottom dockable window: geometry is persistant.

- StGIT add to top (refresh): it is now possible to change patch message

- StGIT commit: restore original files in working dir if commit fails

- added tag list in pop-up menu (right click on main view)

- use CTRL + right click to select a revision to diff against instead of just 
  right click to be compatible with pop-up menu while diff window is open

- updated startup dialog to include some check box for common settings

- make qgit work with time-based arguments

- speed-up of file names on demand loading. Load file names in background is
  still the suggested policy.

- speed-up of annotation, also make annotation work with no loaded file names.
  To have maximum performance, load file names in background is still the suggested policy.

- added status bar on annotation viewer with information on what's going on in
  background.

- time column moved to the right and now display commit author date by default,
  relative time is still available through settings.

- fix broken jump to childs/parent function

- finally fixed QSettings compile warning

- added some more tooltips and menu entries to help first time user

- various small fixes and GUI tweaks.



      Marco



		
__________________________________ 
Yahoo! Music Unlimited 
Access over 1 million songs. Try it free.
http://music.yahoo.com/unlimited/

^ permalink raw reply

* Re: maybe breakage with latest git-pull and http protocol
From: Daniel Barkalow @ 2005-10-14 19:56 UTC (permalink / raw)
  To: Randal L. Schwartz; +Cc: Junio C Hamano, git
In-Reply-To: <86achcoyvz.fsf@blue.stonehenge.com>

On Fri, 14 Oct 2005, Randal L. Schwartz wrote:

> My previous message mentioned cogito.git breaking.  This message
> was triggered because git.git itself broke.
> 
> Unfortunately, git.git hasn't been updated since the last time I
> worked around the problem by switching to rsync again, but when it
> does, I'll capture the breakage this time.

Can you give a general description of what happens? I've noticed that I 
sometimes get spurious error messages that don't actually affect the 
download, which I haven't tracked down yet.

	-Daniel
*This .sig left intentionally blank*

^ permalink raw reply

* [PATCH] Use config file settings for http
From: Nick Hengeveld @ 2005-10-14 18:51 UTC (permalink / raw)
  To: git

Use "http." config file settings if they exist.  Environment variables
still work, and they will override config file settings.

Signed-off-by: Nick Hengeveld <nickh@reactrix.com>


---

 http-fetch.c |  109 +++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 88 insertions(+), 21 deletions(-)

e1564121cae5272fbac9710a61ac182ddb9d421c
diff --git a/http-fetch.c b/http-fetch.c
--- a/http-fetch.c
+++ b/http-fetch.c
@@ -25,7 +25,7 @@ static int active_requests = 0;
 static int data_received;
 
 #ifdef USE_CURL_MULTI
-static int max_requests = DEFAULT_MAX_REQUESTS;
+static int max_requests = -1;
 static CURLM *curlm;
 #endif
 static CURL *curl_default;
@@ -85,11 +85,11 @@ struct active_request_slot
 static struct transfer_request *request_queue_head = NULL;
 static struct active_request_slot *active_queue_head = NULL;
 
-static int curl_ssl_verify;
-static char *ssl_cert;
-static char *ssl_key;
-static char *ssl_capath;
-static char *ssl_cainfo;
+static int curl_ssl_verify = -1;
+static char *ssl_cert = NULL;
+static char *ssl_key = NULL;
+static char *ssl_capath = NULL;
+static char *ssl_cainfo = NULL;
 
 struct buffer
 {
@@ -98,6 +98,60 @@ struct buffer
         void *buffer;
 };
 
+static int http_options(const char *var, const char *value)
+{
+	if (!strcmp("http.sslverify", var)) {
+		if (curl_ssl_verify == -1) {
+			curl_ssl_verify = git_config_bool(var, value);
+		}
+		return 0;
+	}
+
+	if (!strcmp("http.sslcert", var)) {
+		if (ssl_cert == NULL) {
+			ssl_cert = xmalloc(strlen(value)+1);
+			strcpy(ssl_cert, value);
+		}
+		return 0;
+	}
+#if LIBCURL_VERSION_NUM >= 0x070902
+	if (!strcmp("http.sslkey", var)) {
+		if (ssl_key == NULL) {
+			ssl_key = xmalloc(strlen(value)+1);
+			strcpy(ssl_key, value);
+		}
+		return 0;
+	}
+#endif
+#if LIBCURL_VERSION_NUM >= 0x070908
+	if (!strcmp("http.sslcapath", var)) {
+		if (ssl_capath == NULL) {
+			ssl_capath = xmalloc(strlen(value)+1);
+			strcpy(ssl_capath, value);
+		}
+		return 0;
+	}
+#endif
+	if (!strcmp("http.sslcainfo", var)) {
+		if (ssl_cainfo == NULL) {
+			ssl_cainfo = xmalloc(strlen(value)+1);
+			strcpy(ssl_cainfo, value);
+		}
+		return 0;
+	}
+
+#ifdef USE_CURL_MULTI	
+	if (!strcmp("http.maxrequests", var)) {
+		if (max_requests == -1)
+			max_requests = git_config_int(var, value);
+		return 0;
+	}
+#endif
+
+	/* Fall back on the default ones */
+	return git_default_config(var, value);
+}
+
 static size_t fwrite_buffer(void *ptr, size_t eltsize, size_t nmemb,
                             struct buffer *buffer)
 {
@@ -1114,8 +1168,6 @@ int main(int argc, char **argv)
 	char *http_max_requests = getenv("GIT_HTTP_MAX_REQUESTS");
 	if (http_max_requests != NULL)
 		max_requests = atoi(http_max_requests);
-	if (max_requests < 1)
-		max_requests = DEFAULT_MAX_REQUESTS;
 
 	curlm = curl_multi_init();
 	if (curlm == NULL) {
@@ -1123,34 +1175,49 @@ int main(int argc, char **argv)
 		return 1;
 	}
 #endif
+
+	if (getenv("GIT_SSL_NO_VERIFY"))
+		curl_ssl_verify = 0;
+
+	ssl_cert = getenv("GIT_SSL_CERT");
+#if LIBCURL_VERSION_NUM >= 0x070902
+	ssl_key = getenv("GIT_SSL_KEY");
+#endif
+#if LIBCURL_VERSION_NUM >= 0x070908
+	ssl_capath = getenv("GIT_SSL_CAPATH");
+#endif
+	ssl_cainfo = getenv("GIT_SSL_CAINFO");
+
+	git_config(http_options);
+
+	if (curl_ssl_verify == -1)
+		curl_ssl_verify = 1;
+
+#ifdef USE_CURL_MULTI
+	if (max_requests < 1)
+		max_requests = DEFAULT_MAX_REQUESTS;
+#endif
+
 	pragma_header = curl_slist_append(pragma_header, "Pragma: no-cache");
 	no_pragma_header = curl_slist_append(no_pragma_header, "Pragma:");
 	no_range_header = curl_slist_append(no_range_header, "Range:");
 
 	curl_default = curl_easy_init();
 
-	curl_ssl_verify = getenv("GIT_SSL_NO_VERIFY") ? 0 : 1;
 	curl_easy_setopt(curl_default, CURLOPT_SSL_VERIFYPEER, curl_ssl_verify);
 #if LIBCURL_VERSION_NUM >= 0x070907
 	curl_easy_setopt(curl_default, CURLOPT_NETRC, CURL_NETRC_OPTIONAL);
 #endif
 
-	if ((ssl_cert = getenv("GIT_SSL_CERT")) != NULL) {
+	if (ssl_cert != NULL)
 		curl_easy_setopt(curl_default, CURLOPT_SSLCERT, ssl_cert);
-	}
-#if LIBCURL_VERSION_NUM >= 0x070902
-	if ((ssl_key = getenv("GIT_SSL_KEY")) != NULL) {
+	if (ssl_key != NULL)
 		curl_easy_setopt(curl_default, CURLOPT_SSLKEY, ssl_key);
-	}
-#endif
-#if LIBCURL_VERSION_NUM >= 0x070908
-	if ((ssl_capath = getenv("GIT_SSL_CAPATH")) != NULL) {
+	if (ssl_capath != NULL)
 		curl_easy_setopt(curl_default, CURLOPT_CAPATH, ssl_capath);
-	}
-#endif
-	if ((ssl_cainfo = getenv("GIT_SSL_CAINFO")) != NULL) {
+	if (ssl_cainfo != NULL)
 		curl_easy_setopt(curl_default, CURLOPT_CAINFO, ssl_cainfo);
-	}
+
 	curl_easy_setopt(curl_default, CURLOPT_FAILONERROR, 1);
 
 	alt = xmalloc(sizeof(*alt));

^ permalink raw reply

* Re: git-whatchanged does not show merge result?
From: Linus Torvalds @ 2005-10-14 18:39 UTC (permalink / raw)
  To: David Ho; +Cc: git
In-Reply-To: <4dd15d180510141031n531b9e0enc8e7d668b1e61b83@mail.gmail.com>



On Fri, 14 Oct 2005, David Ho wrote:
>
> I was a little worried when I did git-whatchanged on a file and there
> was a hole in the history where the merge is.  This reassured me that
> all changes to the file is accessible (I'm sure they are all stored
> safely in the repo =).

Btw, "git-whatchanged" really _can_ hide real stuff, namely when nothing 
changed.

A commit that has no changes at all (which is quite possible) will never 
be shown by git-whatchanged. 

So in many ways, "git log" is the way to see all commits. 
"git-whatchanged" is really just a way to see the _changes_, and by 
defauly it ignores merges just because the changes are "complicated".

		Linus

^ permalink raw reply

* Re: cygwin: t3200-branch.sh fails with "List form of pipe open not implemented at -e line 22."
From: H. Peter Anvin @ 2005-10-14 17:57 UTC (permalink / raw)
  To: Alex Riesen; +Cc: git
In-Reply-To: <81b0412b0510140546ya10bc8fg3dd5eaab429eba6f@mail.gmail.com>

Alex Riesen wrote:
> Now, how broken is that:
> 
> The message comes from one of the hooks, which are executed even
> though they never meant to, because cygwin apparently uses file
> content or name to detect executability (on FAT).
> 
> I just remove the hooks from repositories atm.

I think the bottom line is "don't use FAT".

	-hpa

^ permalink raw reply

* Re: git-whatchanged does not show merge result?
From: David Ho @ 2005-10-14 17:39 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git
In-Reply-To: <7vd5m8rozb.fsf@assigned-by-dhcp.cox.net>

Sorry, I'm still reading the man pages on
http://www.kernel.org/pub/software/scm/git/docs/.
Thanks for pointing that out.

David

^ permalink raw reply

* Re: git-whatchanged does not show merge result?
From: David Ho @ 2005-10-14 17:31 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: git
In-Reply-To: <Pine.LNX.4.64.0510141007290.23590@g5.osdl.org>

I was a little worried when I did git-whatchanged on a file and there
was a hole in the history where the merge is.  This reassured me that
all changes to the file is accessible (I'm sure they are all stored
safely in the repo =).

Thanks, David

On 10/14/05, Linus Torvalds <torvalds@osdl.org> wrote:
>
>
> On Fri, 14 Oct 2005, David Ho wrote:
> >
> > Maybe someone can clear up a confusion I have with git-whatchanged.
> > I created a new repo with just one file hello, split out a new branch "mybranch.
> > When I merged back the changes from mybranch, git-whatchanged -p did
> > not should the diff of the merge.
>
> You can use the "-m" flag to show merges. HOWEVER, it's not very useful
> in general, although it _is_ useful on a file-by-file basis.
>
> What "-m" does is that it will show diffs against each parent, which is
> _sometimes_ what you want. Try it.
>
>                 Linus
>

^ permalink raw reply

* Re: git-whatchanged does not show merge result?
From: Junio C Hamano @ 2005-10-14 17:24 UTC (permalink / raw)
  To: David Ho; +Cc: git
In-Reply-To: <4dd15d180510140933j7a730c49hb9cdaa98ea0a5b07@mail.gmail.com>

David Ho <davidkwho@gmail.com> writes:

> When I merged back the changes from mybranch, git-whatchanged -p did
> not should the diff of the merge.

You probably mean "git-whatchanged -p -m".

I've seen this question asked at least twice in the past.

    SYNOPSIS
    --------
    'git-whatchanged' <option>...

    DESCRIPTION
    -----------
    Shows commit logs and diff output each commit introduces.  The
    command internally invokes 'git-rev-list' piped to
    'git-diff-tree', and takes command line options for both of
    these commands.

    This manual page describes only the most frequently used options.

Perhaps the frequently used options should include '-m' as well.
This part is from git-diff-tree.txt:

    -m::
            By default, "git-diff-tree --stdin" does not show
            differences for merge commits.  With this flag, it shows
            differences to that commit from all of its parents.

^ permalink raw reply

* Re: [PATCH] Try URI quoting for embedded TAB and LF in pathnames
From: H. Peter Anvin @ 2005-10-14 17:18 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Paul Eggert, Junio C Hamano, Robert Fitzsimons, Alex Riesen, git,
	Kai Ruemmler
In-Reply-To: <Pine.LNX.4.64.0510132203220.23590@g5.osdl.org>

Linus Torvalds wrote:
> 
> No, pine does it right. Exactly because it sends _arbitraty_ binary data.
> 
> The fact that I turned the terminal into utf-8 mode in order to generate 
> the bytes (that end up being a garbage string in latin1) is not pine's 
> fault. 
> 

I would think a full-screen editor would need to know about multibyte 
encodings.

	-hpa

^ permalink raw reply

* Re: git-whatchanged does not show merge result?
From: Linus Torvalds @ 2005-10-14 17:13 UTC (permalink / raw)
  To: David Ho; +Cc: git
In-Reply-To: <4dd15d180510140933j7a730c49hb9cdaa98ea0a5b07@mail.gmail.com>



On Fri, 14 Oct 2005, David Ho wrote:
> 
> Maybe someone can clear up a confusion I have with git-whatchanged.
> I created a new repo with just one file hello, split out a new branch "mybranch.
> When I merged back the changes from mybranch, git-whatchanged -p did
> not should the diff of the merge.

You can use the "-m" flag to show merges. HOWEVER, it's not very useful 
in general, although it _is_ useful on a file-by-file basis. 

What "-m" does is that it will show diffs against each parent, which is 
_sometimes_ what you want. Try it.

		Linus

^ permalink raw reply

* Re: git-whatchanged does not show merge result?
From: David Ho @ 2005-10-14 16:33 UTC (permalink / raw)
  To: git
In-Reply-To: <4dd15d180510140929x2c69f61ag19a1409cfd993e7b@mail.gmail.com>

Hi,

Maybe someone can clear up a confusion I have with git-whatchanged.
I created a new repo with just one file hello, split out a new branch "mybranch.
When I merged back the changes from mybranch, git-whatchanged -p did
not should the diff of the merge.
Does it have some special behaviour I am not aware of.  I'd appreciate
if you can clarify.
Notice that git-whatchange does not show the diff between (last
commit) fd494be and 83ac91a1

Thanks, David

git version 0.99.7b

commands used (roughly to repeat the test)

mkdir git-tutorial
cd git-tutorial
git-init-db
echo "Hello World" >hello
git-update-index --add hello
echo "It's a new day for git" >>hello
echo "Initial commit" | git-commit-tree $(git-write-tree) > .git/HEAD
git -m "added It's a new day..." commit hello
git checkout -b mybranch
git checkout mybranch
echo "Work, work, work" >>hello
git commit -m 'Some work.' hello
git checkout master
echo "Play, play, play" >>hello
git commit -m 'Some fun.' hello
git pull . mybranch
vi hello (merge the change by hand...)
git -m "merge work,work,... from mybranch" commit hello

last commit
#cat .git/HEAD
fd494becb20a8d9eddad01921de1cc9fe2cbf354

output from git-whatchanged -p hello

diff-tree 83ac91a13297887760f252aa9026e76235adcdd9 (from
7a78a9c5bb38ad4db1b5c9b14c1d409b2f36c0b0)
Author:  <davidho@penguin.nanometrics.ca>
Date:   Fri Oct 14 12:02:50 2005 -0400

    Some fun.

diff --git a/hello b/hello
--- a/hello
+++ b/hello
@@ -1,2 +1,3 @@
 Hello World
 It's a new day for git
+Play, play, play

diff-tree b12ea5026dbc9ad651fcad6b44a683548fda47a7 (from
7a78a9c5bb38ad4db1b5c9b14c1d409b2f36c0b0)
Author:  <davidho@penguin.nanometrics.ca>
Date:   Fri Oct 14 12:02:22 2005 -0400

    Some work.

diff --git a/hello b/hello
--- a/hello
+++ b/hello
@@ -1,2 +1,3 @@
 Hello World
 It's a new day for git
+Work, work, work

diff-tree 7a78a9c5bb38ad4db1b5c9b14c1d409b2f36c0b0 (from
e45b23ab79bec72ba4ef0a79820a3c172751e59b)
Author:  <davidho@penguin.nanometrics.ca>
Date:   Fri Oct 14 12:00:48 2005 -0400

    Add line "It's a new day..."

diff --git a/hello b/hello
--- a/hello
+++ b/hello
@@ -1 +1,2 @@
 Hello World
+It's a new day for git

^ permalink raw reply

* Re: maybe breakage with latest git-pull and http protocol
From: Randal L. Schwartz @ 2005-10-14 16:18 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git
In-Reply-To: <7vhdbkt8ad.fsf@assigned-by-dhcp.cox.net>

>>>>> "Junio" == Junio C Hamano <junkio@cox.net> writes:

Junio> merlyn@stonehenge.com (Randal L. Schwartz) writes:
>> Even after updating git this morning, git-pull still seems to be broken
>> with respect to http://www.kernel.org/.
>> Is http pulling broken for good now?  Or is someone looking at this?

Junio> Sorry, but this is not a description of your problem helpful
Junio> enough for someone who is willing to look at it, I am afraid.
Junio> http://www.kernel.org/ has 80 or so repos (I counted about a
Junio> month ago so it may probably have more by now) --- which ones?

My previous message mentioned cogito.git breaking.  This message
was triggered because git.git itself broke.

Unfortunately, git.git hasn't been updated since the last time I
worked around the problem by switching to rsync again, but when it
does, I'll capture the breakage this time.

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

^ permalink raw reply

* Re: cygwin: t3200-branch.sh fails with "List form of pipe open not implemented at -e line 22."
From: Junio C Hamano @ 2005-10-14 16:09 UTC (permalink / raw)
  To: Alex Riesen; +Cc: git
In-Reply-To: <81b0412b0510140546ya10bc8fg3dd5eaab429eba6f@mail.gmail.com>

Alex Riesen <raa.lkml@gmail.com> writes:

> Now, how broken is that:
>
> The message comes from one of the hooks, which are executed even
> though they never meant to, because cygwin apparently uses file
> content or name to detect executability (on FAT).
>
> I just remove the hooks from repositories atm.

Ah, that indeed is broken.

We probably should fix it at two levels.

Unless a test is trying to make sure the hook mechanism works, I
think we should not have them in the t/trash/ test repository.
The initial git-init-db done at the end of t/test-lib.sh should
be changed to run with an explicit --template= parameter to not
copy templates from random places.  If somebody is going to do
this and supply a tested patch to me, it will also be nice to
add tests to specifically check the hook mechanism while she is
at it.

I think the original idea of using executable bit to control
whether the hook is enabled or not is still sound, but it may be
safer to have hooks in templates to have a suffix such as
.sample in their names *and* be executable --- the set of hooks
copied from default templates are still disabled, but now
instead of asking users to "chmod +x foo-hook", we ask them to
"mv foo-hook.sample foo-hook" if she wants to enable it.

^ permalink raw reply

* Re: maybe breakage with latest git-pull and http protocol
From: Junio C Hamano @ 2005-10-14 15:42 UTC (permalink / raw)
  To: Randal L. Schwartz; +Cc: git
In-Reply-To: <864q7kqsa4.fsf@blue.stonehenge.com>

merlyn@stonehenge.com (Randal L. Schwartz) writes:

> Even after updating git this morning, git-pull still seems to be broken
> with respect to http://www.kernel.org/.
> Is http pulling broken for good now?  Or is someone looking at this?

Sorry, but this is not a description of your problem helpful
enough for someone who is willing to look at it, I am afraid.
http://www.kernel.org/ has 80 or so repos (I counted about a
month ago so it may probably have more by now) --- which ones?

I have local repositories used only to test pulling into them,
and I pull from Linus 2.6 kernel, and my own git repository,
every other day or so, but haven't seen breakage, so I do not
think it is http://www.kernel.org/. in general.  If some
particular repository is not set up HTTP friendly I would
understand.

Also how does it fail?  Does cloning from scratch succeed but
updating a repo that was in sync a few days ago fail?  Does it
die silently and you find the breakage by running fsck-object,
or does it fail loudly with error messages?  If the latter what
does it say?

^ permalink raw reply

* PATCH: fix cg-mkpatch "-f" option
From: Klaus Weidner @ 2005-10-14 14:23 UTC (permalink / raw)
  To: git

Hello, 

in cogito-0.15.1, the "-f" option to specify a format string for output
filenames didn't work, it was getting an empty OPTARG. The following
patch fixes it for me.

-Klaus

--- cogito/cg-mkpatch.orig	2005-10-14 09:16:04.000000000 -0500
+++ cogito/cg-mkpatch	2005-10-14 09:16:33.000000000 -0500
@@ -119,7 +119,7 @@
 		mergebase=1
 	elif optparse -d=; then
 		outdir="$OPTARG"
-	elif optparse -f; then
+	elif optparse -f=; then
 		fileformat="$OPTARG"
 	else
 		optfail

^ permalink raw reply

* failing test with cogito
From: Ivo Alxneit @ 2005-10-14 13:32 UTC (permalink / raw)
  To: git

[-- Attachment #1: Type: text/plain, Size: 1461 bytes --]

hi

i use

cogito
commit 19e07806612d8cea5c8e343709d567fb796e2bb3
git
commit d06b689a933f6d2130f8afdf1ac0ddb83eeb59ab

and the following tests fail for cogito (all tests pass in git)

*** t9200-merge.sh ***
* FAIL 17: merging branch2 to branch1 (automatic)
        (cd branch1 && cg-merge </dev/null)
* FAIL 18: checking for correct merged content
        (cmp branch1/brm expect)
* FAIL 23: checking for correct conflict content
        (cmp brm-cleaned-up expect)

*** t9202-merge-on-dirty.sh ***
* FAIL 19: checking if we still have our local change
        (cd branch1 && cg-status -w | grep -q "^M foo" && cmp foo foo-)
* FAIL 36: merging branch2 to branch1 (automatic)
        (cd branch1 && cg-merge </dev/null)
* FAIL 37: checking if the working copy was touched by the merge
        (cd branch1 && ! cmp brm brm-)
* FAIL 38: checking if we still have our local change
        (cd branch1 && cg-status -w | grep -q "^M bar" && cmp bar bar-)
* FAIL 47: confirming that we have no uncommitted modifications
        (cd branch1 && [ -z "$(git-diff-index -r $(cg-object-id -t))" ])
* FAIL 50: checking if the merge caused a conflict
        (cd branch1 && grep "<<<" brm)

-- 
Dr. Ivo Alxneit
Laboratory for Solar Technology   phone: +41 56 310 4092
Paul Scherrer Institute             fax: +41 56 310 2688
CH-5232 Villigen                   http://solar.web.psi.ch
Switzerland                   gnupg key: 0x515E30C7

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox