Git development
 help / color / mirror / Atom feed
* SIGPIPE in t9300-fast-import
From: Brian Gernhardt @ 2010-12-12 20:49 UTC (permalink / raw)
  To: git@vger.kernel.org List; +Cc: David Barr

The new cat-blob test (9300.114) is failing for me on OS X, and has been since it's introduction in "85c6239 fast-import: let importers retrieve blobs":

---- 8< ----

ok 113 - setup: have pipes?

expecting success: 
	expect_id=$(git hash-object big) &&
	expect_len=$(wc -c <big) &&
	echo $expect_id blob $expect_len >expect.response &&

	rm -f blobs &&
	cat >frontend <<-\FRONTEND_END &&
	#!/bin/sh
	cat <<EOF &&
	feature cat-blob
	blob
	mark :1
	data <<BLOB
	EOF
	cat big
	cat <<EOF
	BLOB
	cat-blob :1
	EOF

	read blob_id type size <&3 &&
	echo "$blob_id $type $size" >response &&
	dd of=blob bs=$size count=1 <&3 &&
	read newline <&3 &&

	cat <<EOF &&
	commit refs/heads/copied
	committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
	data <<COMMIT
	copy big file as file3
	COMMIT
	M 644 inline file3
	data <<BLOB
	EOF
	cat blob &&
	cat <<EOF
	BLOB
	EOF
	FRONTEND_END

	mkfifo blobs &&
	(
		export GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_COMMITTER_DATE &&
		sh frontend 3<blobs |
		git fast-import --cat-blob-fd=3 3>blobs
	) &&
	git show copied:file3 >actual &&
	test_cmp expect.response response &&
	test_cmp big actual

0+1 records in
0+1 records out
8139 bytes transferred in 0.000062 secs (131297847 bytes/sec)
error: git-fast-import died of signal 13
not ok - 114 R: copy using cat-file
---- 8< ----

I don't have the tuits right now to dig into this, but "trash directory.t9300-fast-input" has a good response (`cmp expect.response response` is true), but has no refs/heads/copied.  I can run help provide diagnostics, if anyone needs more data.

~~ Brian

PS:  Isn't t9300 getting a little crazily long?  Is there a good way to split it up by feature or something? It runs quickly, but finding were something is failing is getting a little difficult.

^ permalink raw reply

* [PATCH v2/RFC] gitk: Add "First parent" checkbox
From: lists @ 2010-12-12 20:08 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: Stefan Haller, git
In-Reply-To: <20101212042732.GA7296@brick.ozlabs.ibm.com>

From: Stefan Haller <lists@haller-berlin.de>

Sometimes it's desirable to see what changes were introduced by a
merge commit, rather than how conflicts were resolved. This adds
a checkbox which, when turned on, makes gitk show the equivalent
of "git show --first-parent <commit>" for merge commits.

Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
---
Paul Mackerras <paulus@samba.org> wrote:

> I just applied Thomas Rast's patch, so you'll need to rebase. 

OK, here's a new patch, rebased onto current master (but otherwise
unchanged for now).

> Also you're right that we're running out of space; perhaps we need to make
> the pane header two rows high.

The suggestion was to make it two rows high only if it doesn't fit on
one row (i.e. dynamically "line-wrap"), and I like the idea.  Unfortunately
that's beyond my Tk skills; anybody willing to help?

> Finally, "First parent" doesn't really convey to me immediately what it
> does -- I have to think about it, so it will probably confuse new users.
> I don't know what would be better, though.

What I like about it is that it's consistent with the command-line
client, "git show --first-parent".  But I don't insist on it if anybody
has a better suggestion.

 gitk |   25 ++++++++++++++++++++++---
 1 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/gitk b/gitk
index e82c6bf..7201ba0 100755
--- a/gitk
+++ b/gitk
@@ -2269,6 +2269,10 @@ proc makewindow {} {
 	pack .bleft.mid.worddiff -side left -padx 5
     }
 
+    ${NS}::checkbutton .bleft.mid.firstparent -text [mc "First parent"] \
+	-command changefirstparent -variable firstparent
+    pack .bleft.mid.firstparent -side left -padx 5
+
     set ctext .bleft.bottom.ctext
     text $ctext -background $bgcolor -foreground $fgcolor \
 	-state disabled -font textfont \
@@ -6897,6 +6901,7 @@ proc selectline {l isnew {desired_loc {}}} {
     global cmitmode showneartags allcommits
     global targetrow targetid lastscrollrows
     global autoselect jump_to_here
+    global firstparent
 
     catch {unset pending_select}
     $canv delete hover
@@ -7038,7 +7043,7 @@ proc selectline {l isnew {desired_loc {}}} {
     init_flist [mc "Comments"]
     if {$cmitmode eq "tree"} {
 	gettree $id
-    } elseif {[llength $olds] <= 1} {
+    } elseif {[llength $olds] <= 1 || $firstparent} {
 	startdiff $id
     } else {
 	mergediff $id
@@ -7442,7 +7447,7 @@ proc diffcmd {ids flags} {
 proc gettreediffs {ids} {
     global treediff treepending
 
-    if {[catch {set gdtf [open [diffcmd $ids {--no-commit-id}] r]}]} return
+    if {[catch {set gdtf [open [diffcmd $ids {--no-commit-id -m --first-parent}] r]}]} return
 
     set treepending $ids
     set treediff {}
@@ -7534,12 +7539,20 @@ proc changeworddiff {name ix op} {
     reselectline
 }
 
+proc changefirstparent {} {
+    global treediffs
+    catch {unset treediffs}
+
+    reselectline
+}
+
 proc getblobdiffs {ids} {
     global blobdifffd diffids env
     global diffinhdr treediffs
     global diffcontext
     global ignorespace
     global worddiff
+    global firstparent
     global limitdiffs vfilelimit curview
     global diffencoding targetline diffnparents
     global git_version currdiffsubmod
@@ -7552,13 +7565,18 @@ proc getblobdiffs {ids} {
     if {[package vcompare $git_version "1.6.6"] >= 0} {
 	set submodule "--submodule"
     }
-    set cmd [diffcmd $ids "-p $textconv $submodule  -C --cc --no-commit-id -U$diffcontext"]
+    set cmd [diffcmd $ids "-p $textconv $submodule  -C --no-commit-id -U$diffcontext"]
     if {$ignorespace} {
 	append cmd " -w"
     }
     if {$worddiff ne [mc "Line diff"]} {
 	append cmd " --word-diff=porcelain"
     }
+    if {$firstparent} {
+	append cmd " -m --first-parent"
+    } else {
+	append cmd " --cc"
+    }
     if {$limitdiffs && $vfilelimit($curview) ne {}} {
 	set cmd [concat $cmd -- $vfilelimit($curview)]
     }
@@ -11453,6 +11471,7 @@ set diffcolors {red "#00a000" blue}
 set diffcontext 3
 set ignorespace 0
 set worddiff ""
+set firstparent 0
 set markbgcolor "#e0e0ff"
 
 set circlecolors {white blue gray blue blue}
-- 
1.7.3.2.442.g97e50

^ permalink raw reply related

* Re: [PATCH 2/2] get_sha1: support ref^{/regex} syntax
From: Jonathan Nieder @ 2010-12-12 17:38 UTC (permalink / raw)
  To: Nguyễn Thái Ngọc Duy
  Cc: git, Junio C Hamano, Kevin Ballard, Yann Dirson, Jeff King,
	Jakub Narebski, Thiago Farina
In-Reply-To: <1292151419-30678-2-git-send-email-pclouds@gmail.com>

Nguyễn Thái Ngọc Duy wrote:

> This works like :/ syntax, but only limited to one ref.

Limited to the ancestors of one commit, not one ref, right?

> --- /dev/null
> +++ b/t/t1511-rev-parse-caret.sh
> @@ -0,0 +1,73 @@

Nice.

^ permalink raw reply

* Re: [PATCH 1/2] get_sha1_oneline: allow to input commit_list
From: Jonathan Nieder @ 2010-12-12 17:34 UTC (permalink / raw)
  To: Nguyễn Thái Ngọc Duy
  Cc: git, Junio C Hamano, Kevin Ballard, Yann Dirson, Jeff King,
	Jakub Narebski, Thiago Farina
In-Reply-To: <1292151419-30678-1-git-send-email-pclouds@gmail.com>

Nguyễn Thái Ngọc Duy wrote:

> [Subject: get_sha1_oneline: allow to input commit_list]

Cryptic.  Might be simpler to squash this with the next commit,
since the best explanation I can come up with is

	prepare to extend :/foo syntax to start search at specified refs

^ permalink raw reply

* Re: fast-import tweaks for remote helpers
From: Jonathan Nieder @ 2010-12-12 17:16 UTC (permalink / raw)
  To: Sam Vilain
  Cc: Tomas Carnecky, git, Ramkumar Ramachandra, Sverre Rabbelier,
	David Barr, Stephen Bash
In-Reply-To: <4D049BA5.1060509@vilain.net>

Sam Vilain wrote:

> What happened to --report-fd ?

The patch still works.  The main problem with report-fd is that it
introduced a synchronization point after every commit: the frontend
has to read the commit id before fast-import will continue.

So if the reports can be made optional ("report _this_ commit") or
batched ("report all marked commits") then the result would be easier
to use imho.

>> (In the back of my mind, I have the idea of using a
>> file that allows O(1) access, perhaps of the form
>>
>>	<commit name for rev 1>  NL
>>	<commit name for rev 2>  NL
>>	...
>
> This doesn't scale to many branches

Right.  Another reason to delay getting rid of the git branch with the
full repo.

^ permalink raw reply

* Re: [PATCH 13/10] vcs-svn: use mark from previous import for parent commit
From: Jonathan Nieder @ 2010-12-12 17:06 UTC (permalink / raw)
  To: David Michael Barr
  Cc: git, Ramkumar Ramachandra, Sverre Rabbelier, Sam Vilain,
	Stephen Bash, Tomas Carnecky
In-Reply-To: <11EEDD77-214C-44DB-AC7B-C1A086E35E4C@cordelta.com>

David Michael Barr wrote:

> Subject: [PATCH] vcs-svn: use mark from previous import for parent commit
[...]
> +++ b/vcs-svn/fast_export.c
> @@ -77,7 +77,7 @@ void fast_export_begin_commit(uint32_t revision, uint32_t
>                    log, gitsvnline);
>         if (!first_commit_done) {
>                 if (revision > 1)
> -                       printf("from refs/heads/master^0\n");
> +                       printf("from :%"PRIu32"\n", revision - 1);

This deals more sanely with attempts to continue an import starting at
the wrong revision.

Example: if I try

	import () {
		rm -f backflow
		mkfifo backflow

		svn-fe 3<backflow |
		git fast-import --cat-blob-fd=3 \
			--relative-marks \
			${1+--import-marks=svnrevs} \
			--export-marks=svnrevs \
			3>backflow
	}

	svnrdump -r0:100 $url | import
	svnrdump -r100:200 $url | import continue

then svn-fe should correctly re-import r100 the second time, instead
of trying to apply the same deltas twice.  If I try

	svnrdump -r0:100 $url | import
	svnrdump -r102:200 $url | import continue

then the second command should error out.

Thanks, queued.

^ permalink raw reply

* git svn fetch -> fatal: refs/remotes/trunk: not a valid SHA1
From: Nicolas Kuttler @ 2010-12-12 16:19 UTC (permalink / raw)
  To: git

Hello,

I'm using git version 1.7.2.3 and get the
"fatal: refs/remotes/trunk: not a valid SHA1" error while fetching from
an svn repository.

$ mkdir test
$ cd test
$ git svn init -s http://svn.wp-plugins.org/zero-conf-mail
$ git svn fetch -r246566

r246566 = 92e8abc50bf56cc1774e0e2688a280bc379a4817
(refs/remotes/tags/0.6.1)
fatal: refs/remotes/trunk: not a valid SHA1
update-ref refs/heads/master refs/remotes/trunk: command returned error: 128

The problem seems to be that r246566 was created by a "git svn tag foo"
command, fetching r246565 is works just fine. I didn't test if native
svn tagging produces the same error but can do this if relevant. It
could also be specific to the wordpress svn repository, I haven't tested
that either.

Thanks,

Nicolas

P.S. Please CC me as I'm not on the list.

--
Nicolas Kuttler
wp@nkuttler.de

http://www.nkuttler.de
http://www.nicolaskuttler.de (deutsch)

^ permalink raw reply

* Re: [PATCH 16/18] gitweb: When changing output (STDOUT) change STDERR as well
From: Jakub Narebski @ 2010-12-12 15:17 UTC (permalink / raw)
  To: J.H.; +Cc: git
In-Reply-To: <4D045CD6.9060806@eaglescrag.net>

On Sun, 12 Dec 2010, J.H. wrote:

> > Hmm... anuthing that happens after 'use CGI::Carp;' is parsed should
> > have STDERR redirected to web server logs, see CGI::Carp manpage
> > 
> >     [...]
> >  
> >        use CGI::Carp
> > 
> >     And the standard warn(), die (), croak(), confess() and carp() calls will
> >     automagically be replaced with functions that write out nicely time-stamped
> >     messages to the HTTP server error log.
> > 
> >     [...]
> > 
> >     REDIRECTING ERROR MESSAGES
> > 
> >        By default, error messages are sent to STDERR.  Most HTTPD servers direct
> >        STDERR to the server's error log.
> > 
> >     [...]
> > 
> > Especially the second part.
> 
> That was not what I was seeing, so either something I was doing was
> horking how CGI::Carp works, or their claim that "most HTTPD server
> direct STDERR to the server's error log" is false.
> 
> > Could you give us example which causes described misbehaviour?
> 
> While I was working on the trapping of the error pages I started getting
> 500 errors when going to a non-existent sha1.  Running the command from
> the cli revealed that a message from a git command was making it out to
> the console.  Redirecting STDERR masked the error from git, and stopped
> premature data being sent out before the headers were sent.

Generally if something worked, and stopped working, don't you think
that you should concentrate on fixing your code, and not papering
over the issue?


The fact that "Running the command from the cli revealed that a message
from a git command was making it out to the console." doesn't mean
anything, because when running gitweb from commandline both stdout
and stderr are redirected to terminal, by default.  So you should
worry only if there is premature data being sent to standard output,
with standard error redirected to /dev/null (2>/dev/null).

What CGI::Carp does is (re)define 'die' and 'warn' to support
fatalsToBrowser and warningsToBrowser, and to add timestamp and other
auxiliary information: in the end 'die' calls 'CORE::die', and 'warn'
calls 'CORE::warn' - both of which write to STDERR.  This means that
warnings from git commands sent to standard error do not get timestamp
appended.  Note that standard output from git commands run by gitweb
is always captured.
 
> > I have nothing against this patch: if you have to have it, then you
> > have to have it.  I oly try to understand what might be core cause
> > behind the issue that this patch is to solve...
> 
> I've re-tried this, if you remove this patch and attempt to visit a
> non-exist sha1, *boom*
> 
> I can only speculate that CGI::Carp only redirects the output inside of
> perl, and does not handle the case when called programs (like git) write
> more directly to STDERR.

CGI::Carp doesn't redirect output: it adds timestamp and prints it to
STDERR (unless one use 'carpout') to the result of 'die' and 'warn' calls.

*Without your series* when I visit non-existing sha1, or non-existing
file I get correctly 404 error from gitweb.  So you have borked something.

The CGI standard (http://tools.ietf.org/html/rfc3875) doesn't talk about
'standard error' stream at all; on the other hand it talks only about
'standard input' and 'standard output'.  I have checked with simple CGI
script in Perl, that neither using die or warn (both before any HTTP 
headers are send), neither with plain CGI or with mod_perl 
(ModPerl::Registry), with CGI::Carp I never get the error you see.
Without CGI::Carp I get '500 Internal Server Error' instead of nicer
one formatted by CGI::Carp, but I don't get it even without CGI::Carp
with 'warn' and printing to STDERR directly.

The standard error stream either gets discarded (mod_cgid), or is
written to /var/log/httpd/error_log (mod_perl).

-- 
Jakub Narebski
Poland

^ permalink raw reply

* Re: Push to all repositories
From: Enrico Weigelt @ 2010-12-12 15:09 UTC (permalink / raw)
  To: git
In-Reply-To: <1291829983410-5816069.post@n2.nabble.com>

* Kevin Sheedy <kevinsheedy@gmail.com> wrote:

Hi,

> Clearcase has a great solution to this, "dynamic views". Whenever I check in
> some code, the whole team magically get's my changes straight away.
> Normally, they don't even notice, they're just forced to stay in sync. This
> drastically reduces the number of 'code conflicts' where people make changes
> to 'stale' files. This enforces the practise of "catching errors early". It
> also keeps developers "honest" as they have to keep the quality of their
> checkins high lest they get shouted at by the rest of the team.

Are you sure you *really* want this ? 
I'd strongly advise against that.

Better have some central branch (maybe on a dedicated remote)
where everybody can push to, and the others fork off from there
and frequently rebase or merge if they like.


My preferred workflow is to have per-issue branches (eg. per bug,
per feature, etc), which frequently get rebased to the mainline
and are only pushed upwards if they're finished (IOW: only one
person is actively working on an small issue at a time, others
may just read but dont write). Once some issue branch seems to
be ready, it gets rebased to latest master and cleaned up, others
might do some reviews and if it passed all tests (and only then!)
it gets pushed upwards.


cu
-- 
----------------------------------------------------------------------
 Enrico Weigelt, metux IT service -- http://www.metux.de/

 phone:  +49 36207 519931  email: weigelt@metux.de
 mobile: +49 151 27565287  icq:   210169427         skype: nekrad666
----------------------------------------------------------------------
 Embedded-Linux / Portierung / Opensource-QM / Verteilte Systeme
----------------------------------------------------------------------

^ permalink raw reply

* Re: [PATCH] git_getpass: fix ssh-askpass behaviour
From: Alexander Sulfrian @ 2010-12-12 13:07 UTC (permalink / raw)
  To: git
In-Reply-To: <1292157174-4033-2-git-send-email-alexander@sulfrian.net>

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

On Sun, 12 Dec 2010 13:32:54 +0100
Alexander Sulfrian <alexander@sulfrian.net> wrote:

> call ssh-askpass only if the display environment variable is also set

Oh forgot to sign-off... I'll wait if there are other comments and
resend it in a few days.

Alex

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply

* [PATCH] git_getpass: fix ssh-askpass behaviour
From: Alexander Sulfrian @ 2010-12-12 12:32 UTC (permalink / raw)
  To: git; +Cc: Alexander Sulfrian
In-Reply-To: <AANLkTinES5dqt+JAMOrp7gAYJ4UgK9ipfEN9ag5qSCLp@mail.gmail.com>

call ssh-askpass only if the display environment variable is also set
---
 connect.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/connect.c b/connect.c
index 57dc20c..2810e3b 100644
--- a/connect.c
+++ b/connect.c
@@ -621,7 +621,7 @@ int finish_connect(struct child_process *conn)
 
 char *git_getpass(const char *prompt)
 {
-	const char *askpass;
+	const char *askpass, *display;
 	struct child_process pass;
 	const char *args[3];
 	static struct strbuf buffer = STRBUF_INIT;
@@ -631,7 +631,10 @@ char *git_getpass(const char *prompt)
 		askpass = askpass_program;
 	if (!askpass)
 		askpass = getenv("SSH_ASKPASS");
-	if (!askpass || !(*askpass)) {
+
+	/* only call askpass if display is set */
+	display = getenv("DISPLAY");
+	if (!display || !(*display) || !askpass || !(*askpass))
 		char *result = getpass(prompt);
 		if (!result)
 			die_errno("Could not read password");
-- 
1.7.2.2

^ permalink raw reply related

* [RFC/PATCH] RE: git calls SSH_ASKPASS even if DISPLAY is not set
From: Alexander Sulfrian @ 2010-12-12 12:32 UTC (permalink / raw)
  To: git
In-Reply-To: <AANLkTinES5dqt+JAMOrp7gAYJ4UgK9ipfEN9ag5qSCLp@mail.gmail.com>

Hi,
I prepared a patch to fix this behaviour. It is a simple patch that
adds another check for the DISPLAY environment variable.

But I do not know, if this behaviour breaks something...


Thanks,
Alex

^ permalink raw reply

* [PATCH 2/2] get_sha1: support ref^{/regex} syntax
From: Nguyễn Thái Ngọc Duy @ 2010-12-12 10:56 UTC (permalink / raw)
  To: git, Junio C Hamano
  Cc: Kevin Ballard, Yann Dirson, Jeff King, Jakub Narebski,
	Jonathan Niedier, Thiago Farina,
	Nguyễn Thái Ngọc Duy
In-Reply-To: <1292151419-30678-1-git-send-email-pclouds@gmail.com>

This works like :/ syntax, but only limited to one ref.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 No fancy modifiers, but still useful.

 Documentation/revisions.txt |    6 +++
 sha1_name.c                 |   35 ++++++++++++++------
 t/t1511-rev-parse-caret.sh  |   73 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 103 insertions(+), 11 deletions(-)
 create mode 100755 t/t1511-rev-parse-caret.sh

diff --git a/Documentation/revisions.txt b/Documentation/revisions.txt
index 3d4b79c..174fa8e 100644
--- a/Documentation/revisions.txt
+++ b/Documentation/revisions.txt
@@ -106,6 +106,12 @@ the `$GIT_DIR/refs` directory or from the `$GIT_DIR/packed-refs` file.
   and dereference the tag recursively until a non-tag object is
   found.
 
+* A suffix '{caret}' to a revision parameter followed by a brace
+  pair that contains a text led by a slash (e.g. `HEAD^{/fix nasty bug}`):
+  this is the same as `:/fix nasty bug` syntax below except that
+  it returns the youngest matching commit which is reachable from
+  the ref before '{caret}'.
+
 * A colon, followed by a slash, followed by a text (e.g. `:/fix nasty bug`): this names
   a commit whose commit message matches the specified regular expression.
   This name returns the youngest matching commit which is
diff --git a/sha1_name.c b/sha1_name.c
index c298285..f1a86d9 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -527,6 +527,7 @@ struct object *peel_to_type(const char *name, int namelen,
 	}
 }
 
+static int get_sha1_oneline(const char *, unsigned char *, struct commit_list *);
 static int peel_onion(const char *name, int len, unsigned char *sha1)
 {
 	unsigned char outer[20];
@@ -562,6 +563,8 @@ static int peel_onion(const char *name, int len, unsigned char *sha1)
 		expected_type = OBJ_BLOB;
 	else if (sp[0] == '}')
 		expected_type = OBJ_NONE;
+	else if (sp[0] == '/')
+		expected_type = OBJ_COMMIT;
 	else
 		return -1;
 
@@ -576,19 +579,29 @@ static int peel_onion(const char *name, int len, unsigned char *sha1)
 		if (!o || (!o->parsed && !parse_object(o->sha1)))
 			return -1;
 		hashcpy(sha1, o->sha1);
+		return 0;
 	}
-	else {
-		/*
-		 * At this point, the syntax look correct, so
-		 * if we do not get the needed object, we should
-		 * barf.
-		 */
-		o = peel_to_type(name, len, o, expected_type);
-		if (o) {
-			hashcpy(sha1, o->sha1);
-			return 0;
-		}
+
+	/*
+	 * At this point, the syntax look correct, so if we do not get
+	 * the needed object, we should barf.
+	 */
+	o = peel_to_type(name, len, o, expected_type);
+	if (!o)
 		return -1;
+
+	hashcpy(sha1, o->sha1);
+	if (sp[0] == '/') { /* ^{/foo} */
+		struct commit_list *list = NULL;
+		char *prefix;
+		int ret;
+
+		commit_list_insert((struct commit *)o, &list);
+		prefix = xstrndup(sp + 1, name + len - 1 - (sp + 1));
+		ret = get_sha1_oneline(prefix, sha1, list);
+		free(prefix);
+		free_commit_list(list);
+		return ret;
 	}
 	return 0;
 }
diff --git a/t/t1511-rev-parse-caret.sh b/t/t1511-rev-parse-caret.sh
new file mode 100755
index 0000000..5c8439c
--- /dev/null
+++ b/t/t1511-rev-parse-caret.sh
@@ -0,0 +1,73 @@
+#!/bin/sh
+
+test_description='tests for ref^{stuff}'
+
+. ./test-lib.sh
+
+test_expect_success 'setup' '
+	echo blob >a-blob &&
+	git tag -a -m blob blob-tag `git hash-object -w a-blob`
+	mkdir a-tree &&
+	echo moreblobs >a-tree/another-blob &&
+	git add . &&
+	TREE_SHA1=`git write-tree` &&
+	git tag -a -m tree tree-tag "$TREE_SHA1" &&
+	git commit -m Initial &&
+	git tag -a -m commit commit-tag &&
+	git branch ref &&
+	git checkout master &&
+	echo modified >>a-blob &&
+	git add -u &&
+	git commit -m Modified
+'
+
+test_expect_success 'ref^{non-existent}' '
+	test_must_fail git rev-parse ref^{non-existent}
+'
+
+test_expect_success 'ref^{}' '
+	git rev-parse ref >expected &&
+	git rev-parse ref^{} >actual &&
+	test_cmp expected actual &&
+	git rev-parse commit-tag^{} >actual &&
+	test_cmp expected actual
+'
+
+test_expect_success 'ref^{commit}' '
+	git rev-parse ref >expected &&
+	git rev-parse ref^{commit} >actual &&
+	test_cmp expected actual &&
+	git rev-parse commit-tag^{commit} >actual &&
+	test_cmp expected actual &&
+	test_must_fail git rev-parse tree-tag^{commit} &&
+	test_must_fail git rev-parse blob-tag^{commit}
+'
+
+test_expect_success 'ref^{tree}' '
+	echo $TREE_SHA1 >expected &&
+	git rev-parse ref^{tree} >actual &&
+	test_cmp expected actual &&
+	git rev-parse commit-tag^{tree} >actual &&
+	test_cmp expected actual &&
+	git rev-parse tree-tag^{tree} >actual &&
+	test_cmp expected actual &&
+	test_must_fail git rev-parse blob-tag^{tree}
+'
+
+test_expect_success 'ref^{/}' '
+	git rev-parse master >expected &&
+	git rev-parse master^{/} >actual &&
+	test_cmp expected actual
+'
+
+test_expect_success 'ref^{/non-existent}' '
+	test_must_fail git rev-parse master^{/non-existent}
+'
+
+test_expect_success 'ref^{/Initial}' '
+	git rev-parse ref >expected &&
+	git rev-parse master^{/Initial} >actual &&
+	test_cmp expected actual
+'
+
+test_done
-- 
1.7.3.3.476.g893a9

^ permalink raw reply related

* [PATCH 1/2] get_sha1_oneline: allow to input commit_list
From: Nguyễn Thái Ngọc Duy @ 2010-12-12 10:56 UTC (permalink / raw)
  To: git, Junio C Hamano
  Cc: Kevin Ballard, Yann Dirson, Jeff King, Jakub Narebski,
	Jonathan Niedier, Thiago Farina,
	Nguyễn Thái Ngọc Duy


Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 sha1_name.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/sha1_name.c b/sha1_name.c
index 2c3a5fb..c298285 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -690,7 +690,9 @@ static int handle_one_ref(const char *path,
 	return 0;
 }
 
-static int get_sha1_oneline(const char *prefix, unsigned char *sha1)
+static int get_sha1_oneline(const char *prefix,
+			    unsigned char *sha1,
+			    struct commit_list *original_list)
 {
 	struct commit_list *list = NULL, *backup = NULL, *l;
 	int retval = -1;
@@ -706,7 +708,12 @@ static int get_sha1_oneline(const char *prefix, unsigned char *sha1)
 	if (regcomp(&regex, prefix, REG_EXTENDED))
 		die("Invalid search pattern: %s", prefix);
 
-	for_each_ref(handle_one_ref, &list);
+	for (l = original_list; l; l = l->next) {
+		commit_list_insert(l->item, &list);
+		l->item->object.flags |= ONELINE_SEEN;
+	}
+	if (!list)
+		for_each_ref(handle_one_ref, &list);
 	for (l = list; l; l = l->next)
 		commit_list_insert(l->item, &backup);
 	while (list) {
@@ -1090,7 +1097,7 @@ int get_sha1_with_context_1(const char *name, unsigned char *sha1,
 		int pos;
 		if (namelen > 2 && name[1] == '/')
 			/* don't need mode for commit */
-			return get_sha1_oneline(name + 2, sha1);
+			return get_sha1_oneline(name + 2, sha1, NULL);
 		if (namelen < 3 ||
 		    name[2] != ':' ||
 		    name[1] < '0' || '3' < name[1])
-- 
1.7.3.3.476.g893a9

^ permalink raw reply related

* Re: fast-import tweaks for remote helpers (Re: Status of the svn remote helper project (Dec 2010, #1))
From: Sam Vilain @ 2010-12-12  9:53 UTC (permalink / raw)
  To: Jonathan Nieder
  Cc: Tomas Carnecky, git, Ramkumar Ramachandra, Sverre Rabbelier,
	David Barr, Sam Vilain, Stephen Bash
In-Reply-To: <20101212061437.GA17185@burratino>

On 12/12/10 19:14, Jonathan Nieder wrote:
> That's good to hear. What should be the syntax for asking fast-import
> not to write to a ref?  Something like this?
>
> 	commit
> 	mark :1
> 	committer c o mitter<committer@example.com>  now
> 	data<<END
> 	...
>
> Writing the sha1 as each commit is written: how early does the
> frontend need access to the sha1?  Would a facility to report marks
> back to the frontend at the end of the stream take care of it?

What happened to --report-fd ?

> (In the back of my mind, I have the idea of using a
> file that allows O(1) access, perhaps of the form
>
> 	<commit name for rev 1>  NL
> 	<commit name for rev 2>  NL
> 	...

This doesn't scale to many branches; git-svn started with that and had 
to use a b-tree in the end.  Eg, consider a repository with 10,000 
branches and 600,000 revisions.

Thanks for continuing this work, it is most interesting to follow.

Cheers,
Sam

^ permalink raw reply

* [PATCH 13/10] vcs-svn: use mark from previous import for parent commit
From: David Michael Barr @ 2010-12-12  9:32 UTC (permalink / raw)
  To: Jonathan Nieder
  Cc: git, Ramkumar Ramachandra, Sverre Rabbelier, Sam Vilain,
	Stephen Bash, Tomas Carnecky
In-Reply-To: <20101210102007.GA26298@burratino>

From: David Barr <david.barr@cordelta.com>
Date: Sun, 12 Dec 2010 13:41:38 +1100
Subject: [PATCH] vcs-svn: use mark from previous import for parent commit

Signed-off-by: David Barr <david.barr@cordelta.com>
---
 vcs-svn/fast_export.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/vcs-svn/fast_export.c b/vcs-svn/fast_export.c
index d2397d8..6abd108 100644
--- a/vcs-svn/fast_export.c
+++ b/vcs-svn/fast_export.c
@@ -77,7 +77,7 @@ void fast_export_begin_commit(uint32_t revision, uint32_t author, char *log,
 		   log, gitsvnline);
 	if (!first_commit_done) {
 		if (revision > 1)
-			printf("from refs/heads/master^0\n");
+			printf("from :%"PRIu32"\n", revision - 1);
 		first_commit_done = 1;
 	}
 }
-- 
1.7.3.2.846.gf4b062

^ permalink raw reply related

* Re: [PATCH] completion: Add PS1 configuration for submodules
From: Jonathan Nieder @ 2010-12-12  6:38 UTC (permalink / raw)
  To: Scott Kyle; +Cc: Jens Lehmann, Kevin Ballard, Ævar Arnfjörð, git
In-Reply-To: <AANLkTinjzvCDjCFrvujdFPRZKo2vK_9_8j3ybLNAfFmE@mail.gmail.com>

Scott Kyle wrote:
> On Tue, Dec 7, 2010 at 1:29 PM, Jonathan Nieder <jrnieder@gmail.com> wrote:
>> Scott Kyle wrote:

>>> If I set the "submodule.<name>.ignore" then diffing around inside my
>>> history will not show the changes to that particular submodule.
>>
>> Even if you set it to "dirty"?
>
> Setting it to "dirty" is far less disruptive, you're right, but that
> wouldn't do me much good since my submodules are often on different
> branches while developing.

Ah, I see now.  How about something like this?  Untested, just a
vague sketch to show the idea.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
 Documentation/config.txt       |    4 +++-
 Documentation/diff-options.txt |    7 +++++--
 Documentation/git-status.txt   |   14 ++------------
 Documentation/gitmodules.txt   |    4 +++-
 diff-lib.c                     |    3 ++-
 diff.h                         |    3 ++-
 submodule.c                    |    4 ++++
 7 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/Documentation/config.txt b/Documentation/config.txt
index 0f85793..b93e92b 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -1810,7 +1810,9 @@ submodule.<name>.update::
 submodule.<name>.ignore::
 	Defines under what circumstances "git status" and the diff family show
 	a submodule as modified. When set to "all", it will never be considered
-	modified, "dirty" will ignore all changes to the submodules work tree and
+	modified, "worktree" will ignore all changes in the work tree not
+	registered in the superproject index, "dirty" will ignore all changes
+	to the submodules work tree and
 	takes only differences between the HEAD of the submodule and the commit
 	recorded in the superproject into account. "untracked" will additionally
 	let submodules with modified tracked files in their work tree show up.
diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
index f3e9538..93fe084 100644
--- a/Documentation/diff-options.txt
+++ b/Documentation/diff-options.txt
@@ -360,7 +360,8 @@ endif::git-format-patch[]
 
 --ignore-submodules[=<when>]::
 	Ignore changes to submodules in the diff generation. <when> can be
-	either "none", "untracked", "dirty" or "all", which is the default
+	either "none", "untracked", "dirty", "worktree", or "all", which is
+	the default.
 	Using "none" will consider the submodule modified when it either contains
 	untracked or modified files or its HEAD differs from the commit recorded
 	in the superproject and can be used to override any settings of the
@@ -369,7 +370,9 @@ endif::git-format-patch[]
 	contain untracked content (but they are still scanned for modified
 	content). Using "dirty" ignores all changes to the work tree of submodules,
 	only changes to the commits stored in the superproject are shown (this was
-	the behavior until 1.7.0). Using "all" hides all changes to submodules.
+	the behavior until 1.7.0).  Using "worktree" submodules in the worktree are
+	never considered dirty but diffs between old commits do not ignore
+	submodules.  Using "all" hides all changes to submodules.
 
 --src-prefix=<prefix>::
 	Show the given source prefix instead of "a/".
diff --git a/Documentation/git-status.txt b/Documentation/git-status.txt
index dae190a..8c3b0ac 100644
--- a/Documentation/git-status.txt
+++ b/Documentation/git-status.txt
@@ -55,18 +55,8 @@ specified.
 
 --ignore-submodules[=<when>]::
 	Ignore changes to submodules when looking for changes. <when> can be
-	either "none", "untracked", "dirty" or "all", which is the default.
-	Using "none" will consider the submodule modified when it either contains
-	untracked or modified files or its HEAD differs from the commit recorded
-	in the superproject and can be used to override any settings of the
-	'ignore' option in linkgit:git-config[1] or linkgit:gitmodules[5]. When
-	"untracked" is used submodules are not considered dirty when they only
-	contain untracked content (but they are still scanned for modified
-	content). Using "dirty" ignores all changes to the work tree of submodules,
-	only changes to the commits stored in the superproject are shown (this was
-	the behavior before 1.7.0). Using "all" hides all changes to submodules
-	(and suppresses the output of submodule summaries when the config option
-	`status.submodulesummary` is set).
+	either "none", "untracked", "dirty", "worktree", or "all",
+	which is the default.  See linkgit:git-diff[1] for details.
 
 -z::
 	Terminate entries with NUL, instead of LF.  This implies
diff --git a/Documentation/gitmodules.txt b/Documentation/gitmodules.txt
index bcffd95..02185c4 100644
--- a/Documentation/gitmodules.txt
+++ b/Documentation/gitmodules.txt
@@ -47,7 +47,9 @@ submodule.<name>.update::
 submodule.<name>.ignore::
 	Defines under what circumstances "git status" and the diff family show
 	a submodule as modified. When set to "all", it will never be considered
-	modified, "dirty" will ignore all changes to the submodules work tree and
+	modified; with "worktree", changes in the superproject index are
+	significant but in the subprojects are not;
+	"dirty" will ignore all changes to the submodules work tree and
 	takes only differences between the HEAD of the submodule and the commit
 	recorded in the superproject into account. "untracked" will additionally
 	let submodules with modified tracked files in their work tree show up.
diff --git a/diff-lib.c b/diff-lib.c
index 392ce2b..39fa605 100644
--- a/diff-lib.c
+++ b/diff-lib.c
@@ -72,7 +72,8 @@ static int match_stat_with_submodule(struct diff_options *diffopt,
 		unsigned orig_flags = diffopt->flags;
 		if (!DIFF_OPT_TST(diffopt, OVERRIDE_SUBMODULE_CONFIG))
 			set_diffopt_flags_from_submodule_config(diffopt, ce->name);
-		if (DIFF_OPT_TST(diffopt, IGNORE_SUBMODULES))
+		if (DIFF_OPT_TST(diffopt, IGNORE_SUBMODULES) ||
+		    DIFF_OPT_TST(diffopt, IGNORE_WT_SUBMODULES))
 			changed = 0;
 		else if (!DIFF_OPT_TST(diffopt, IGNORE_DIRTY_SUBMODULES)
 		    && (!changed || DIFF_OPT_TST(diffopt, DIRTY_SUBMODULES)))
diff --git a/diff.h b/diff.h
index 0083d92..3b835ce 100644
--- a/diff.h
+++ b/diff.h
@@ -77,7 +77,8 @@ typedef struct strbuf *(*diff_prefix_fn_t)(struct diff_options *opt, void *data)
 #define DIFF_OPT_DIRTY_SUBMODULES    (1 << 24)
 #define DIFF_OPT_IGNORE_UNTRACKED_IN_SUBMODULES (1 << 25)
 #define DIFF_OPT_IGNORE_DIRTY_SUBMODULES (1 << 26)
-#define DIFF_OPT_OVERRIDE_SUBMODULE_CONFIG (1 << 27)
+#define DIFF_OPT_IGNORE_WT_SUBMODULES (1 << 27)
+#define DIFF_OPT_OVERRIDE_SUBMODULE_CONFIG (1 << 28)
 
 #define DIFF_OPT_TST(opts, flag)    ((opts)->flags & DIFF_OPT_##flag)
 #define DIFF_OPT_SET(opts, flag)    ((opts)->flags |= DIFF_OPT_##flag)
diff --git a/submodule.c b/submodule.c
index 91a4758..81a99bd 100644
--- a/submodule.c
+++ b/submodule.c
@@ -102,6 +102,7 @@ int parse_submodule_config_option(const char *var, const char *value)
 		strbuf_release(&submodname);
 	} else if ((len > 7) && !strcmp(var + len - 7, ".ignore")) {
 		if (strcmp(value, "untracked") && strcmp(value, "dirty") &&
+		    strcmp(value, "worktree") &&
 		    strcmp(value, "all") && strcmp(value, "none")) {
 			warning("Invalid parameter \"%s\" for config option \"submodule.%s.ignore\"", value, var);
 			return 0;
@@ -127,6 +128,7 @@ void handle_ignore_submodules_arg(struct diff_options *diffopt,
 	DIFF_OPT_CLR(diffopt, IGNORE_SUBMODULES);
 	DIFF_OPT_CLR(diffopt, IGNORE_UNTRACKED_IN_SUBMODULES);
 	DIFF_OPT_CLR(diffopt, IGNORE_DIRTY_SUBMODULES);
+	DIFF_OPT_CLR(diffopt, IGNORE_WT_SUBMODULES);
 
 	if (!strcmp(arg, "all"))
 		DIFF_OPT_SET(diffopt, IGNORE_SUBMODULES);
@@ -134,6 +136,8 @@ void handle_ignore_submodules_arg(struct diff_options *diffopt,
 		DIFF_OPT_SET(diffopt, IGNORE_UNTRACKED_IN_SUBMODULES);
 	else if (!strcmp(arg, "dirty"))
 		DIFF_OPT_SET(diffopt, IGNORE_DIRTY_SUBMODULES);
+	else if (!strcmp(arg, "worktree"))
+		DIFF_OPT_SET(diffopt, IGNORE_WT_SUBMODULES);
 	else if (strcmp(arg, "none"))
 		die("bad --ignore-submodules argument: %s", arg);
 }
-- 
1.7.2.4

^ permalink raw reply related

* Please pull gitk.git master branch
From: Paul Mackerras @ 2010-12-12  6:31 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Junio,

Please do a pull from

git://git.kernel.org/pub/scm/gitk/gitk.git

to get the commits listed below.

Thanks,
Paul.

 gitk        |   81 +++-
 po/pt_BR.po | 1277 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 po/sv.po    |  601 ++++++++++++++--------------
 3 files changed, 1654 insertions(+), 305 deletions(-)
 create mode 100644 po/pt_BR.po

Alexandre Erwin Ittner (1):
      gitk: Add Brazilian Portuguese (pt-BR) translation

Kirill Smelkov (1):
      gitk: Show notes by default (like git log does)

Peter Krefting (1):
      gitk: Update Swedish translation (290t)

Stefan Haller (2):
      gitk: Prevent the text pane from becoming editable
      gitk: Make text selectable on Mac

Thomas Rast (1):
      gitk: Add the equivalent of diff --color-words

^ permalink raw reply

* fast-import tweaks for remote helpers (Re: Status of the svn remote helper project (Dec 2010, #1))
From: Jonathan Nieder @ 2010-12-12  6:14 UTC (permalink / raw)
  To: Tomas Carnecky
  Cc: git, Ramkumar Ramachandra, Sverre Rabbelier, David Barr,
	Sam Vilain, Stephen Bash
In-Reply-To: <4CFFCDCD.9060602@dbservice.com>

Tomas Carnecky wrote:

> I simplified the code and the requirements on fast-import are much
> lighter now. All I need is a way to tell fast-import to stop writing
> refs and after each commit write its sha1 to stdout.

That's good to hear.  What should be the syntax for asking fast-import
not to write to a ref?  Something like this?

	commit
	mark :1
	committer c o mitter <committer@example.com> now
	data <<END
	...

Writing the sha1 as each commit is written: how early does the
frontend need access to the sha1?  Would a facility to report marks
back to the frontend at the end of the stream take care of it?

Based on [1] I guess the main need is some way for fast-import to
tell the transport machinery what refs the transport machinery
should update (or at least ought to report as updated).  A hackish
way might be to make the remote helper send "progress" commands
with that information.

> It's possible to
> to modify fast-import.c with a small patch to make it behave like
> that. However, I haven't followed the svn remote helper that much
> lately so I don't know whether one of the other patches already
> modifies fast-import in this way.

No, the patches have mostly been adding commands that send information
back to the frontend.

 cat-blob (<dataref> | <mark>):
	Sends back an old blob along with its length (in
	cat-file --batch format).  svn-fe uses this to acquire
	the preimage when applying deltas.

 ls <quoted-path>:
	Sends back information about the current state of a path
	in the commit being prepared (as a single line in ls-tree
	format).  svn-fe uses this to move around files and to find
	a <dataref> to use with cat-blob when applying deltas.

 ls (<dataref> | <mark>) <path>:
	Sends back information about a path in a previous revision
	(tag, commit, or tree), in ls-tree format.

 M 040000 (<dataref> | <mark>) <path>:
	Like "M 100644 <dataref> <path>", replaces an entry in the
	active commit with content of the frontend's choice.  This
	gets used to copy in old directories.

> From the beginning my code was meant to be just an example how the
> interaction between git and the svn remote helper could look like.

It makes a nice demo, too. :)

> For example I save the svn rev <-> sha1 mapping in notes, which is
> appears to work well. I'll take a look if I'll be able to use the
> svn-fe in my script.

svn-fe needs a fast mapping svn rev -> sha1; it currently uses a marks
file for that.  (In the back of my mind, I have the idea of using a
file that allows O(1) access, perhaps of the form

	<commit name for rev 1> NL
	<commit name for rev 2> NL
	...

but as Ram has noted, keeping the whole table in memory is pretty
cheap already.)  A remote helper needs a fast mapping sha1 -> svn rev,
and imho notes are ideal for that[2].

The way I imagine it, the authoritative mapping is in notes and the
reverse mapping (e.g. in a marks file) is rebuilt when needed.

[1] remote-helper branch at git://github.com/wereHamster/git.git
[2] Why?  When a project switches from one svn server to another,
revision numbers tend to change, so revision numbers are not permanent
enough to belong in the commit message imho.  (If only git-notes had
existed when git svn was written...)

^ permalink raw reply

* Re: [PATCH 16/18] gitweb: When changing output (STDOUT) change STDERR as well
From: J.H. @ 2010-12-12  5:25 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: git
In-Reply-To: <m3vd32z9yk.fsf@localhost.localdomain>

> Hmm... anuthing that happens after 'use CGI::Carp;' is parsed should
> have STDERR redirected to web server logs, see CGI::Carp manpage
> 
>     [...]
>  
>        use CGI::Carp
> 
>     And the standard warn(), die (), croak(), confess() and carp() calls will
>     automagically be replaced with functions that write out nicely time-stamped
>     messages to the HTTP server error log.
> 
>     [...]
> 
>     REDIRECTING ERROR MESSAGES
> 
>        By default, error messages are sent to STDERR.  Most HTTPD servers direct
>        STDERR to the server's error log.
> 
>     [...]
> 
> Especially the second part.

That was not what I was seeing, so either something I was doing was
horking how CGI::Carp works, or their claim that "most HTTPD server
direct STDERR to the server's error log" is false.

> Could you give us example which causes described misbehaviour?

While I was working on the trapping of the error pages I started getting
500 errors when going to a non-existent sha1.  Running the command from
the cli revealed that a message from a git command was making it out to
the console.  Redirecting STDERR masked the error from git, and stopped
premature data being sent out before the headers were sent.

> I have nothing against this patch: if you have to have it, then you
> have to have it.  I oly try to understand what might be core cause
> behind the issue that this patch is to solve...

I've re-tried this, if you remove this patch and attempt to visit a
non-exist sha1, *boom*

I can only speculate that CGI::Carp only redirects the output inside of
perl, and does not handle the case when called programs (like git) write
more directly to STDERR.

- John 'Warthog9' Hawley

^ permalink raw reply

* Re: [PATCH] gitk: Add "First parent" checkbox
From: Paul Mackerras @ 2010-12-12  4:27 UTC (permalink / raw)
  To: Stefan Haller; +Cc: git
In-Reply-To: <1289212979-64246-1-git-send-email-lists@haller-berlin.de>

On Mon, Nov 08, 2010 at 11:42:59AM +0100, Stefan Haller wrote:
> Sometimes it's desirable to see what changes were introduced by a
> merge commit, rather than how conflicts were resolved. This adds
> a checkbox which, when turned on, makes gitk show the equivalent
> of "git show --first-parent <commit>" for merge commits.
> 
> Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
> ---
> I realize this conflicts with Thomas Rast's recent patch to
> add a word-diff dropdown box; things are fighting for space
> in the diff pane header...

I just applied Thomas Rast's patch, so you'll need to rebase.  Also
you're right that we're running out of space; perhaps we need to make
the pane header two rows high.  Finally, "First parent" doesn't really
convey to me immediately what it does -- I have to think about it, so
it will probably confuse new users.  I don't know what would be
better, though.

Paul.

^ permalink raw reply

* Re: [PATCH] gitk: Make text selectable on Mac
From: Paul Mackerras @ 2010-12-12  4:27 UTC (permalink / raw)
  To: Stefan Haller; +Cc: git
In-Reply-To: <1289737376-33373-1-git-send-email-lists@haller-berlin.de>

On Sun, Nov 14, 2010 at 01:22:56PM +0100, Stefan Haller wrote:
> From: Stefan Haller <stefan@haller-berlin.de>
> 
> Stolen from git-gui, 23effa79f7 (original log message by
> Shawn O. Pearce <spearce@spearce.org> follows):

Thanks, applied.

Paul.

^ permalink raw reply

* Re: [PATCH] gitk: Prevent the text pane from becoming editable
From: Paul Mackerras @ 2010-12-12  4:24 UTC (permalink / raw)
  To: Stefan Haller; +Cc: git
In-Reply-To: <1289737310-33265-1-git-send-email-lists@haller-berlin.de>

On Sun, Nov 14, 2010 at 01:21:50PM +0100, Stefan Haller wrote:
> From: Stefan Haller <stefan@haller-berlin.de>
> 
> When setting the "Patch/Tree" radio buttons to "Tree" and
> clicking on a file to display it, the text pane would
> accidentally become editable (because of the early return
> in getblobline).

Thanks, applied.

Paul.

^ permalink raw reply

* Re: [PATCH] gitk: Update Swedish translation (290t).
From: Paul Mackerras @ 2010-12-11 23:28 UTC (permalink / raw)
  To: Peter Krefting; +Cc: git
In-Reply-To: <20100912202119.A5A782FC00@perkele>

On Sun, Sep 12, 2010 at 09:17:05PM +0100, Peter Krefting wrote:

> Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
> ---
>  po/sv.po |  601 +++++++++++++++++++++++++++++++-------------------------------
>  1 files changed, 303 insertions(+), 298 deletions(-)

Thanks, applied.

Paul.

^ permalink raw reply

* Re: [PATCH] gitk: add the equivalent of diff --color-words
From: Paul Mackerras @ 2010-12-11 23:48 UTC (permalink / raw)
  To: Thomas Rast; +Cc: git
In-Reply-To: <3c06517d478b3725054f4ca08fb8c38e681549c4.1287223650.git.trast@student.ethz.ch>

On Sat, Oct 16, 2010 at 12:15:10PM +0200, Thomas Rast wrote:

> Use the newly added 'diff --word-diff=porcelain' to teach gitk a
> color-words mode, with two different modes analogous to the
> --word-diff=plain and --word-diff=color settings.  These are selected
> by a dropdown box.

Thanks, applied.

Paul.

^ 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