Git development
 help / color / mirror / Atom feed
* [ANNOUNCE] tig-0.13
From: Jonas Fonseca @ 2009-01-13 23:36 UTC (permalink / raw)
  To: git

Hello,

This release contains a major rewrite of the IO layer of tig to use
fork+exec instead of popen() and remove use of stdio's fopen() and
friends. The new IO API removes the need for shell quoting and improves
the overall speed of loading view data. On the downside, it brings a few
incompatibilities wrt. commands given via the environment. While the
patch series began by being based on git's run-command.c module, the
final version contains no code from git.

The release also brings a few new features, such as new identifiers for
use in external commands as well as a handful of bug fixes.

What is tig?
------------
Tig is an ncurses-based text-mode interface for git. It functions mainly
as a git repository browser, but can also assist in staging changes for
commit at chunk level and act as a pager for output from various git
commands.

 - Homepage:	http://jonas.nitro.dk/tig/
 - Manual:	http://jonas.nitro.dk/tig/manual.html
 - Tarballs:	http://jonas.nitro.dk/tig/releases/
 - Git URL:	git://repo.or.cz/tig.git 
 - Gitweb:	http://repo.or.cz/w/tig.git

Release notes
-------------
Incompatibilities:

 - Commands from the environment (e.g. TIG_MAIN_CMD) will no longer have
   access to shell features, such as subshells and variable expansion.
   The easiest way to upgrade your configuration is to put such commands
   in a script file.

Improvements:

 - Display repository references in the sorted order: tags, heads,
   tracked remotes, remotes.
 - Add bash completion for blame.
 - Tree view: edit files of the current branch.
 - Run requests: new identifiers %(directory), %(file), and %(ref)
 - Improve responsiveness and view loading speed by using select(2).

Bug fixes:

 - Separate blame revision and file argument by "--" to avoid problems.
 - Main view: fix redrawing of the last commit wrt. the revision graph.
 - Fix waiting for input after executing a run request in pager mode.
 - Status & stage view: refuse to open directories and deleted files.
 - Tree view: show error when requesting blame for all non-file entries.
 - Do not draw loading views, which are not displayed.
 - Fix launching of mergetool from a subdirectory.

Change summary
--------------
The diffstat and log summary for changes made in this release.

 NEWS                        |   29 +
 VERSION                     |    2 +-
 contrib/announcement.sh     |    2 +-
 contrib/tig-completion.bash |   25 +-
 manual.txt                  |  281 ++++---
 tig.1.txt                   |    6 +-
 tig.c                       | 1774 +++++++++++++++++++++--------------
 tigrc.5.txt                 |   23 +-
 8 files changed, 1325 insertions(+), 817 deletions(-)

    53	Jonas Fonseca

-- 
Jonas Fonseca

^ permalink raw reply

* Getting new branches from SVN?
From: Andrew Selder @ 2009-01-13 23:44 UTC (permalink / raw)
  To: git

Hi.

We started using git-svn at my company and it's going pretty well so far.

The only problem I have is that when new branches and tags are created in SVN,
how do I get those branches to show up in git as remote branches.

I did the normal git svn clone -s -prefix svn/ .... and it found all the
branches and tags up to that point. 

But since then, a couple new SVN branches and tags have been created, and I need
them to appear in my git repo.

I'm sure I just missed something simple, but I couldn't find this.

Thanks,

Andrew

^ permalink raw reply

* How can I restrict git-diff to a specific set of directories?
From: Alan @ 2009-01-13 23:49 UTC (permalink / raw)
  To: git

I have a repository that I need to build a set of patches for a single
directory path.  (I just want the diffs on the one driver.)

Is there a clean non-hacky way to do this?

It is not cross repository or anything. I just need to generate a diff
between one commit and another, but only for the contents of a specific
directory.

I am not finding a real straightforward way to do that.  (Unless I am
missing something, which is quite possible.)

Thanks!

^ permalink raw reply

* Re: Getting new branches from SVN?
From: Björn Steinbrink @ 2009-01-13 23:55 UTC (permalink / raw)
  To: Andrew Selder; +Cc: git
In-Reply-To: <loom.20090113T234017-639@post.gmane.org>

On 2009.01.13 23:44:13 +0000, Andrew Selder wrote:
> Hi.
> 
> We started using git-svn at my company and it's going pretty well so far.
> 
> The only problem I have is that when new branches and tags are created in SVN,
> how do I get those branches to show up in git as remote branches.
> 
> I did the normal git svn clone -s -prefix svn/ .... and it found all the
> branches and tags up to that point. 
> 
> But since then, a couple new SVN branches and tags have been created, and I need
> them to appear in my git repo.
> 
> I'm sure I just missed something simple, but I couldn't find this.

"git svn fetch" should get them.

Björn

^ permalink raw reply

* Re: How can I restrict git-diff to a specific set of directories?
From: Boyd Stephen Smith Jr. @ 2009-01-14  0:02 UTC (permalink / raw)
  To: Alan; +Cc: git
In-Reply-To: <1231890543.31432.5.camel@rotwang.fnordora.org>

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

On Tuesday 2009 January 13 17:49:03 Alan wrote:
>I need to generate a diff
>between one commit and another, but only for the contents of a specific
>directory.
>
>I am not finding a real straightforward way to do that.

I think:
git diff one_commit another -- specific/directory
is supposed to do what you want.  However, I've never used it myself.
-- 
Boyd Stephen Smith Jr.                     ,= ,-_-. =. 
bss@iguanasuicide.net                     ((_/)o o(\_))
ICQ: 514984 YM/AIM: DaTwinkDaddy           `-'(. .)`-' 
http://iguanasuicide.net/                      \_/     

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply

* Re: How can I restrict git-diff to a specific set of directories?
From: Björn Steinbrink @ 2009-01-14  0:02 UTC (permalink / raw)
  To: Alan; +Cc: git
In-Reply-To: <1231890543.31432.5.camel@rotwang.fnordora.org>

On 2009.01.13 15:49:03 -0800, Alan wrote:
> I have a repository that I need to build a set of patches for a single
> directory path.  (I just want the diffs on the one driver.)
> 
> Is there a clean non-hacky way to do this?
> 
> It is not cross repository or anything. I just need to generate a diff
> between one commit and another, but only for the contents of a specific
> directory.
> 
> I am not finding a real straightforward way to do that.  (Unless I am
> missing something, which is quite possible.)

git diff commitA commitB -- some/paths/here some/more/here and/then/some

That limits the diff to the paths after the dashes.

Björn

^ permalink raw reply

* [RFC/PATCH] gitweb: Fix nested links problem with ref markers
From: Jakub Narebski @ 2009-01-14  0:17 UTC (permalink / raw)
  To: Giuseppe Bilotta; +Cc: git
In-Reply-To: <cb7bb73a0901121659h7277c074ia73786b15d66b804@mail.gmail.com>

On Tue, 13 Jan 2009, Giuseppe Bilotta wrote:
> On Mon, Jan 12, 2009 at 7:13 PM, Jakub Narebski <jnareb@gmail.com> wrote:
>> On Mon, 12 Jan 2009, Giuseppe Bilotta wrote:
>>> On Sun, Jan 11, 2009 at 8:15 PM, Jakub Narebski <jnareb@gmail.com> wrote:

[...]
> Notice that nested links are actually valid *XML*. Indeed, I asked on
> www-style and they suggested leaving the problem as-is, serving as
> html+xml which is what we do.

But nested links are neither valid HTML nor valid XHTML.  This
restriction (no nested links) is IMVHO quite sensible, but IIRC
it simply cannot be expressed as pure XML restriction (DTD, XML Schema,
Relax-NG... perhaps Sablotron can express this restriction).

>>>>  * Revert 4afbaef (we lose feature, but how often used is it?)
>>>>  * Always use quirks mode, or check browser and use quirks mode if it
>>>>    would break layout
>>>>  * Use extra divs and links and CSS positioning to make layout which
>>>>    looks like current one, and behaves as current one, but is more
>>>>    complicated.
>>>
>>> I'm asking on #html, hopefully I'll get some interesting idea to try for this.
>>
>> I have found _a_ solution. Perhaps not the best one, but it works.
>> And IMHO gives / can give even better visual.
>>
>> Current version (line wrapped for better visibility):
[...]
>> Proposed code (line wrapped for better visibility, with CSS embedded,
>> which would change in final version of course). Only parts of style
>> related to positioning are shown.
>>  <div class="header">
>>  <a href="..." style="float: left; margin: 6px 1px 6px 8px;">GIT 1.6.1</a>
>>  <div style="float: left; margin: 6px 1px;">
>>    <span class="refs">
>>      <span class="tag indirect" title="tags/v1.6.1">
>>      <a href="...">v1.6.1</a>
>>      </span>
>>    </span>
>>  </div>
>>  <a href="..." style="display: block; padding: 6px 8px;">&nbsp;</a>
>>  </div>

[...]
>> What do you think?
> 
> The float thing was the second suggestion I was given on www-style.

What was the first suggestion? And what is www-style?

> Can you provide a patch I can apply to my tree for testing to see how
> it comes up?

Here it is. Note that CSS could be I think reduced. The size of
gitweb.perl changes is affected by changing calling convention for
git_print_header_html subroutine.

There is also strange artifact at least in Mozilla 1.17.2: if I hover
over ref marker, the subject (title) gets darker background. Curious...

-- >8 --
From: Jakub Narebski <jnareb@gmail.com>
Date: Wed, 14 Jan 2009 01:07:30 +0100
Subject: [RFC/PATCH] gitweb: Fix nested links problem with ref markers

Now that ref markers are links, they create nested links which are not
allowed in HTML, and in strict mode in some browsers it causes layout
errors.

It fixes format_subject_html subroutine (used for example in
'shortlog' view) to put $extra (which currently is formatted ref
marker) outside "subject" link, as $extra can contain links and in
HTML links cannot be nested.

It changes calling convention of git_print_header_div (and accordingly
its calling sites) to provide $ref as separate argument, instead of
concatenating it and putting it in $title, and provides workaround so
links are not nested.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
 gitweb/gitweb.css  |   25 +++++++++++++++++++++-
 gitweb/gitweb.perl |   56 ++++++++++++++++++++++++++++++++-------------------
 2 files changed, 58 insertions(+), 23 deletions(-)

diff --git a/gitweb/gitweb.css b/gitweb/gitweb.css
index a01eac8..244eea2 100644
--- a/gitweb/gitweb.css
+++ b/gitweb/gitweb.css
@@ -76,23 +76,44 @@ div.page_body {
 	font-family: monospace;
 }
 
-div.title, a.title {
+div.title, a.block {
 	display: block;
 	padding: 6px 8px;
+	text-decoration: none;
+	background-color: #edece6;
+}
+
+div.title, a.title {
 	font-weight: bold;
 	background-color: #edece6;
 	text-decoration: none;
 	color: #000000;
 }
 
+div.header div.extra,
+div.header a.float {
+	float: left;
+	margin: 6px 1px;
+}
+
+div.header a.float {
+	margin: 6px 1px 6px 8px;
+}
+
 div.readme {
 	padding: 8px;
 }
 
-a.title:hover {
+a.block:hover,
+div.header:hover a.title {
 	background-color: #d9d8d1;
 }
 
+div.header a.title:hover {
+	background-color: #edece6; /* ??? */
+	text-decoration: underline;
+}
+
 div.title_text {
 	padding: 6px 0px;
 	border: solid #d9d8d1;
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 0ac84d1..9c192ba 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -1408,6 +1408,7 @@ sub format_ref_marker {
 }
 
 # format, perhaps shortened and with markers, title line
+# $extra can contain links, and nested links are illegal in HTML
 sub format_subject_html {
 	my ($long, $short, $href, $extra) = @_;
 	$extra = '' unless defined($extra);
@@ -1415,10 +1416,10 @@ sub format_subject_html {
 	if (length($short) < length($long)) {
 		return $cgi->a({-href => $href, -class => "list subject",
 		                -title => to_utf8($long)},
-		       esc_html($short) . $extra);
+		       esc_html($short)) . $extra;
 	} else {
 		return $cgi->a({-href => $href, -class => "list subject"},
-		       esc_html($long)  . $extra);
+		       esc_html($long))  . $extra;
 	}
 }
 
@@ -3146,17 +3147,30 @@ sub format_paging_nav {
 ## functions printing or outputting HTML: div
 
 sub git_print_header_div {
-	my ($action, $title, $hash, $hash_base) = @_;
+	my ($action, $title, $ref, $hash, $hash_base) = @_;
 	my %args = ();
 
 	$args{'action'} = $action;
 	$args{'hash'} = $hash if $hash;
 	$args{'hash_base'} = $hash_base if $hash_base;
 
-	print "<div class=\"header\">\n" .
-	      $cgi->a({-href => href(%args), -class => "title"},
-	      $title ? $title : $action) .
-	      "\n</div>\n";
+	my $href = href(%args);
+	if ($ref) {
+		# $ref can contain links, and nested links are illegal in HTML
+		# that is why we do this trick (see also gitweb.css for style)
+		# of title text, ref markers and 'background' link
+		print "<div class=\"header\">\n" .
+		      $cgi->a({-href => $href, -class => "title float"},
+		              $title ? $title : $action) . "\n" .
+		      "<div class=\"extra\">\n$ref\n</div>\n" .
+		      $cgi->a({-href => $href, -class => "block"}, '&nbsp;') .
+		      "\n</div>\n"; # class="header"
+	} else {
+		print "<div class=\"header\">\n" .
+		      $cgi->a({-href => $href, -class => "title block"},
+		              $title ? $title : $action) .
+		      "\n</div>\n"; # class="header"
+	}
 }
 
 #sub git_print_authorship (\%) {
@@ -3781,7 +3795,7 @@ sub git_patchset_body {
 	while ($patch_line) {
 
 		# parse "git diff" header line
-		if ($patch_line =~ m/^diff --git (\"(?:[^\\\"]*(?:\\.[^\\\"]*)*)\"|[^ "]*) (.*)$/) {
+		if ($patch_line =~ m/^diff --git (\"(?:[^\\\"]*(?:\\.[^\\\"]*)*)\"|[^ \"]*) (.*)$/) {
 			# $1 is from_name, which we do not use
 			$to_name = unquote($2);
 			$to_name =~ s!^b/!!;
@@ -4523,7 +4537,7 @@ sub git_tag {
 		die_error(404, "Unknown tag object");
 	}
 
-	git_print_header_div('commit', esc_html($tag{'name'}), $hash);
+	git_print_header_div('commit', esc_html($tag{'name'}), undef, $hash);
 	print "<div class=\"title_text\">\n" .
 	      "<table class=\"object_header\">\n" .
 	      "<tr>\n" .
@@ -4591,7 +4605,7 @@ sub git_blame {
 		$cgi->a({-href => href(action=>"blame", file_name=>$file_name)},
 		        "HEAD");
 	git_print_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav);
-	git_print_header_div('commit', esc_html($co{'title'}), $hash_base);
+	git_print_header_div('commit', esc_html($co{'title'}), undef, $hash_base);
 	git_print_page_path($file_name, $ftype, $hash_base);
 
 	# page body
@@ -4797,7 +4811,7 @@ sub git_blob {
 				        "raw");
 		}
 		git_print_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav);
-		git_print_header_div('commit', esc_html($co{'title'}), $hash_base);
+		git_print_header_div('commit', esc_html($co{'title'}), undef, $hash_base);
 	} else {
 		print "<div class=\"page_nav\">\n" .
 		      "<br/><br/></div>\n" .
@@ -4870,7 +4884,7 @@ sub git_tree {
 			push @views_nav, $snapshot_links;
 		}
 		git_print_page_nav('tree','', $hash_base, undef, undef, join(' | ', @views_nav));
-		git_print_header_div('commit', esc_html($co{'title'}) . $ref, $hash_base);
+		git_print_header_div('commit', esc_html($co{'title'}), $ref, $hash_base);
 	} else {
 		undef $hash_base;
 		print "<div class=\"page_nav\">\n";
@@ -5009,7 +5023,7 @@ sub git_log {
 		my %ad = parse_date($co{'author_epoch'});
 		git_print_header_div('commit',
 		               "<span class=\"age\">$co{'age_string'}</span>" .
-		               esc_html($co{'title'}) . $ref,
+		               esc_html($co{'title'}), $ref,
 		               $commit);
 		print "<div class=\"title_text\">\n" .
 		      "<div class=\"log_link\">\n" .
@@ -5097,9 +5111,9 @@ sub git_commit {
 	                   $formats_nav);
 
 	if (defined $co{'parent'}) {
-		git_print_header_div('commitdiff', esc_html($co{'title'}) . $ref, $hash);
+		git_print_header_div('commitdiff', esc_html($co{'title'}), $ref, $hash);
 	} else {
-		git_print_header_div('tree', esc_html($co{'title'}) . $ref, $co{'tree'}, $hash);
+		git_print_header_div('tree', esc_html($co{'title'}), $ref, $co{'tree'}, $hash);
 	}
 	print "<div class=\"title_text\">\n" .
 	      "<table class=\"object_header\">\n";
@@ -5292,7 +5306,7 @@ sub git_blobdiff {
 		git_header_html(undef, $expires);
 		if (defined $hash_base && (my %co = parse_commit($hash_base))) {
 			git_print_page_nav('','', $hash_base,$co{'tree'},$hash_base, $formats_nav);
-			git_print_header_div('commit', esc_html($co{'title'}), $hash_base);
+			git_print_header_div('commit', esc_html($co{'title'}), undef, $hash_base);
 		} else {
 			print "<div class=\"page_nav\"><br/>$formats_nav<br/></div>\n";
 			print "<div class=\"title\">$hash vs $hash_parent</div>\n";
@@ -5462,7 +5476,7 @@ sub git_commitdiff {
 
 		git_header_html(undef, $expires);
 		git_print_page_nav('commitdiff','', $hash,$co{'tree'},$hash, $formats_nav);
-		git_print_header_div('commit', esc_html($co{'title'}) . $ref, $hash);
+		git_print_header_div('commit', esc_html($co{'title'}), $ref, $hash);
 		git_print_authorship(\%co);
 		print "<div class=\"page_body\">\n";
 		if (@{$co{'comment'}} > 1) {
@@ -5579,7 +5593,7 @@ sub git_history {
 
 	git_header_html();
 	git_print_page_nav('history','', $hash_base,$co{'tree'},$hash_base, $paging_nav);
-	git_print_header_div('commit', esc_html($co{'title'}), $hash_base);
+	git_print_header_div('commit', esc_html($co{'title'}), undef, $hash_base);
 	git_print_page_path($file_name, $ftype, $hash_base);
 
 	git_history_body(\@commitlist, 0, 99,
@@ -5660,13 +5674,13 @@ sub git_search {
 		}
 
 		git_print_page_nav('','', $hash,$co{'tree'},$hash, $paging_nav);
-		git_print_header_div('commit', esc_html($co{'title'}), $hash);
+		git_print_header_div('commit', esc_html($co{'title'}), undef, $hash);
 		git_search_grep_body(\@commitlist, 0, 99, $next_link);
 	}
 
 	if ($searchtype eq 'pickaxe') {
 		git_print_page_nav('','', $hash,$co{'tree'},$hash);
-		git_print_header_div('commit', esc_html($co{'title'}), $hash);
+		git_print_header_div('commit', esc_html($co{'title'}), undef, $hash);
 
 		print "<table class=\"pickaxe search\">\n";
 		my $alternate = 1;
@@ -5735,7 +5749,7 @@ sub git_search {
 
 	if ($searchtype eq 'grep') {
 		git_print_page_nav('','', $hash,$co{'tree'},$hash);
-		git_print_header_div('commit', esc_html($co{'title'}), $hash);
+		git_print_header_div('commit', esc_html($co{'title'}), undef, $hash);
 
 		print "<table class=\"grep_search\">\n";
 		my $alternate = 1;
-- 
1.6.0.4

^ permalink raw reply related

* Re: How can I restrict git-diff to a specific set of directories?
From: Alan @ 2009-01-14  0:33 UTC (permalink / raw)
  To: Björn Steinbrink; +Cc: git
In-Reply-To: <20090114000220.GB12624@atjola.homenet>

On Wed, 2009-01-14 at 01:02 +0100, Björn Steinbrink wrote:
> On 2009.01.13 15:49:03 -0800, Alan wrote:
> > I have a repository that I need to build a set of patches for a single
> > directory path.  (I just want the diffs on the one driver.)
> > 
> > Is there a clean non-hacky way to do this?
> > 
> > It is not cross repository or anything. I just need to generate a diff
> > between one commit and another, but only for the contents of a specific
> > directory.
> > 
> > I am not finding a real straightforward way to do that.  (Unless I am
> > missing something, which is quite possible.)
> 
> git diff commitA commitB -- some/paths/here some/more/here and/then/some
> 
> That limits the diff to the paths after the dashes.

Thanks! That is EXACTLY what I need.

^ permalink raw reply

* Re: [PATCH] gitweb: recognize six digit abbreviated SHA1
From: Sam Vilain @ 2009-01-14  0:33 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Anders Melchiorsen, git, jnareb
In-Reply-To: <7vd4erd32a.fsf@gitster.siamese.dyndns.org>

Junio C Hamano wrote:
> When people give an abbreviated object name, 99% of the time they mean
> commits (and "index deadbeef..acebead" in a patch is a good place to pick
> blob object names from, which would be what the 99% of the remaining 1%
> would name), so making sure it is a commit or a blob would be a very
> sensible thing to do.
>
> Unfortunately, you fundamentally cannot do this without taking a
> performance hit of actually opening the object.
>   

Yeah. I envisioned this just for those cases where the tool would
otherwise return 'ambiguous argument'; if there was a hint as to the
object type, open *all* the matching objects and return the one that
matched the type only.

Sam.

^ permalink raw reply

* [PATCH/RFC] git-svn: Add --convert-timezone option
From: Pete Harlan @ 2009-01-14  0:45 UTC (permalink / raw)
  To: Eric Wong, Git mailing list

By default git svn stores timestamps of fetched commits in
Subversion's UTC format, to facilitate interoperating with a
Subversion repository.

If you're using git svn to convert a repository to Git and aren't
interested in pushing Git commits back to Subversion, you can use this
option to store timestamps of fetched commits as though they were made
in the local timezone of the host on which git svn is run.  This makes
the times and timezones of a resulting "git log" agree with what "svn
log" shows for the same repository.

Signed-off-by: Pete Harlan <pgit@pcharlan.com>
---

This is a patch I've had floating around for a while.  I haven't
submitted it before because I find the solution ungainly.  There has
to be a better way to convert from one timezone to the other, but I
didn't run across it and now that I've converted away from Subversion
I'm sort of done thinking about it.  I'm submitting it now because
even in its current state it would have saved me some headache.

Also, I'm not sure I'm correct when asserting that converting
timezones like this will break Subversion interoperability.  Eric, if
that isn't true then I can remove that claim and resubmit.  If
converting timezones breaks nothing, then maybe it could even be the
default.

One improvement that I didn't bother to make would be to convert to
different local timezones based on author.  This change uses the
timezone of the machine running git-svn, which in my case was fine.
Using per-author timezones would be nice, but since parse_svn_date()
doesn't already know which author the date is associated with it would
be a more intrusive change.

My primary motivation in this was to reduce transition shock among our
development team.  The fewer ways "git log" looks unhelpfully
different than the old "svn log" the better; converting all commit
times into GMT wasn't going to look friendly.

Comments welcome.

--Pete

 Documentation/git-svn.txt              |    8 ++++
 contrib/completion/git-completion.bash |    2 +-
 git-svn.perl                           |   56 ++++++++++++++++++++++++++++++-
 3 files changed, 63 insertions(+), 3 deletions(-)

diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index 8d0c421..8811bf0 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -92,6 +92,14 @@ COMMANDS
 	.git/config file may be specified as an optional command-line
 	argument.

+--convert-timezones;;
+	Store Git commit times in the local timezone instead of UTC.  This
+	makes 'git-log' (even without --date=local) show the same times
+	that `svn log` would in the local timezone.
+
+This breaks interoperability with SVN, but may be cosmetically
+desirable when converting a repository from SVN to Git.
+
 'clone'::
 	Runs 'init' and 'fetch'.  It will automatically create a
 	directory based on the basename of the URL passed to it;
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 8ec782d..597ef3d 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1560,7 +1560,7 @@ _git_svn ()
 			--follow-parent --authors-file= --repack=
 			--no-metadata --use-svm-props --use-svnsync-props
 			--log-window-size= --no-checkout --quiet
-			--repack-flags --user-log-author $remote_opts
+			--repack-flags --user-log-author --convert-timezones $remote_opts
 			"
 		local init_opts="
 			--template= --shared= --trunk= --tags=
diff --git a/git-svn.perl b/git-svn.perl
index ad01e18..c2f600d 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -66,7 +66,7 @@ my ($_stdin, $_help, $_edit,
 	$_version, $_fetch_all, $_no_rebase,
 	$_merge, $_strategy, $_dry_run, $_local,
 	$_prefix, $_no_checkout, $_url, $_verbose,
-	$_git_format, $_commit_url, $_tag);
+	$_git_format, $_commit_url, $_tag, $_convert_timezones);
 $Git::SVN::_follow_parent = 1;
 my %remote_opts = ( 'username=s' => \$Git::SVN::Prompt::_username,
                     'config-dir=s' => \$Git::SVN::Ra::config_dir,
@@ -84,6 +84,7 @@ my %fc_opts = ( 'follow-parent|follow!' => \$Git::SVN::_follow_parent,
 		   \$Git::SVN::_repack_flags,
 		'use-log-author' => \$Git::SVN::_use_log_author,
 		'add-author-from' => \$Git::SVN::_add_author_from,
+		'convert-timezones' => \$_convert_timezones,
 		%remote_opts );

 my ($_trunk, $_tags, $_branches, $_stdlayout);
@@ -2526,12 +2527,63 @@ sub get_untracked {
 	\@out;
 }

+# parse_svn_date(DATE)
+# --------------------
+# Given a date (in UTC) from Subversion, return a string in the format
+# "<TZ Offset> <local date/time>" that Git will use.
+#
+# By default the parsed date will be in UTC for interoperating with
+# Subversion, but if $_convert_timezones is true we'll convert it to
+# the local timezone instead.
 sub parse_svn_date {
 	my $date = shift || return '+0000 1970-01-01 00:00:00';
 	my ($Y,$m,$d,$H,$M,$S) = ($date =~ /^(\d{4})\-(\d\d)\-(\d\d)T
 	                                    (\d\d)\:(\d\d)\:(\d\d).\d+Z$/x) or
 	                                 croak "Unable to parse date: $date\n";
-	"+0000 $Y-$m-$d $H:$M:$S";
+	my $parsed_date;    # Set next.
+
+	if ($_convert_timezones) {
+		# Translate the Subversion datetime to an epoch time.
+		# We need to switch ourselves to $date's timezone,
+		# UTC, for this.
+		my $oldEnvTZ = $ENV{TZ};
+		$ENV{TZ} = 'UTC';
+
+		my $epochUTC =
+		    POSIX::strftime ('%s', $S, $M, $H, $d, $m - 1, $Y - 1900);
+
+		# Determine our local timezone (including DST) at the
+		# time of $epochUTC.  $Git::SVN::Log::TZ stored the
+		# value of TZ, if any, at the time we were run.
+		if (defined $Git::SVN::Log::TZ) {
+			$ENV{TZ} = $Git::SVN::Log::TZ;
+		} else {
+			delete $ENV{TZ};
+		}
+
+		my $ourTZ =
+		    POSIX::strftime ('%Z', $S, $M, $H, $d, $m - 1, $Y - 1900);
+
+		# This converts $epochUTC into our local timezone.
+		my ($sec, $min, $hour, $mday, $mon, $year,
+		    $wday, $yday, $isdst) = localtime ($epochUTC);
+
+		$parsed_date = sprintf ('%s %04d-%02d-%02d %02d:%02d:%02d',
+					$ourTZ, $year + 1900, $mon + 1,
+					$mday, $hour, $min, $sec);
+
+		# Reset us to the timezone in effect when we entered
+		# this routine.
+		if (defined $oldEnvTZ) {
+			$ENV{TZ} = $oldEnvTZ;
+		} else {
+			delete $ENV{TZ};
+		}
+	} else {
+		$parsed_date = "+0000 $Y-$m-$d $H:$M:$S";
+	}
+
+	return $parsed_date;
 }

 sub check_author {
-- 
1.6.1.77.g56257

^ permalink raw reply related

* Re: git-svn fails to fetch repository
From: Jay Soffian @ 2009-01-14  0:58 UTC (permalink / raw)
  To: Vladimir Pouzanov; +Cc: git, Eric Wong
In-Reply-To: <loom.20090113T213400-985@post.gmane.org>

On Tue, Jan 13, 2009 at 4:34 PM, Vladimir Pouzanov <farcaller@gmail.com> wrote:
> Jay Soffian <jaysoffian <at> gmail.com> writes:
>> Perhaps this will help in tracking down the problem.
>
> $ git svn clone http://qsb-mac.googlecode.com/svn/trunk qsb-mac
> Initialized empty Git repository in /Users/farcaller/temp/qsb-mac/.git/
> r1 = 810fe584c48b884460b5403a28bc61d872452b93 (git-svn)
> Temp file with moniker 'svn_delta' already in use at /opt/local/lib/perl5/
> site_perl/5.8.8/Git.pm line 1011.

One more thing to try. Edit your Git.pm and make the top of
_temp_cache() look like the following:

sub _temp_cache {
	my ($self, $name) = _maybe_self(@_);
	use Carp qw(longmess);
	warn longmess() if $name eq "svn_delta";

So you're adding the "use Carp..." and "warn..." lines.

Then try the import again. That should at least show why the svn_delta
temp file is being acquired twice.

(Yes, this is the printf school of debugging...)

j.

^ permalink raw reply

* Re: [announce] gc
From: Jakub Narebski @ 2009-01-14  1:31 UTC (permalink / raw)
  To: git
In-Reply-To: <20081222212407.47c9ab1e.stephen@exigencecorp.com>

Stephen Haberman wrote:

> This is just a small collections of hooks, scripts, and practices I
> developed while working on a not-distributed/corporate project.
> 
> A quick list is: svn-like revision numbers (via tagging every commit)
> (don't flame me, please), combined diff-enabled commit emails*, Hudson
> hooks, trac hooks, branch locking, same-repo-separate-DAG git
> server-side config storage and export-on-push, and developer-side
> push/pull scripts that "just work".
> 
> http://github.com/stephenh/gc
> 
> Hopefully others find it as useful.

Added to http://git.or.cz/gitwiki/InterfacesFrontendsAndTools
-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git

^ permalink raw reply

* [RESEND PATCH] fast-import: Cleanup mode setting.
From: Felipe Contreras @ 2009-01-14  1:37 UTC (permalink / raw)
  To: git; +Cc: Shawn O. Pearce, Johannes Schindelin, Miklos Vajna,
	Felipe Contreras

"S_IFREG | mode" probably is only required for 0644 and 0755.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 fast-import.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/fast-import.c b/fast-import.c
index a6bce66..f0e08ac 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -1872,12 +1872,13 @@ static void file_change_m(struct branch *b)
 	if (!p)
 		die("Corrupt mode: %s", command_buf.buf);
 	switch (mode) {
+	case 0644:
+	case 0755:
+		mode |= S_IFREG;
 	case S_IFREG | 0644:
 	case S_IFREG | 0755:
 	case S_IFLNK:
 	case S_IFGITLINK:
-	case 0644:
-	case 0755:
 		/* ok */
 		break;
 	default:
@@ -1944,7 +1945,7 @@ static void file_change_m(struct branch *b)
 			    typename(type), command_buf.buf);
 	}
 
-	tree_content_set(&b->branch_tree, p, sha1, S_IFREG | mode, NULL);
+	tree_content_set(&b->branch_tree, p, sha1, mode, NULL);
 }
 
 static void file_change_d(struct branch *b)
-- 
1.6.0.6.5.ga66c

^ permalink raw reply related

* Re: [RESEND PATCH] fast-import: Cleanup mode setting.
From: Johannes Schindelin @ 2009-01-14  2:08 UTC (permalink / raw)
  To: Felipe Contreras; +Cc: git, Shawn O. Pearce, Miklos Vajna
In-Reply-To: <1231897027-16197-1-git-send-email-felipe.contreras@gmail.com>

Hi,

On Wed, 14 Jan 2009, Felipe Contreras wrote:

> "S_IFREG | mode" probably is only required for 0644 and 0755.

Why should we want to have that patch?  IOW what does it fix, and what 
might it break?

Ciao,
Dscho

^ permalink raw reply

* Re: [RESEND PATCH] fast-import: Cleanup mode setting.
From: Shawn O. Pearce @ 2009-01-14  2:16 UTC (permalink / raw)
  To: Felipe Contreras; +Cc: git, Johannes Schindelin, Miklos Vajna
In-Reply-To: <1231897027-16197-1-git-send-email-felipe.contreras@gmail.com>

Felipe Contreras <felipe.contreras@gmail.com> wrote:
> "S_IFREG | mode" probably is only required for 0644 and 0755.
> 
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>

Acked-by: Shawn O. Pearce <spearce@spearce.org>

> ---
>  fast-import.c |    7 ++++---
>  1 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/fast-import.c b/fast-import.c
> index a6bce66..f0e08ac 100644
> --- a/fast-import.c
> +++ b/fast-import.c
> @@ -1872,12 +1872,13 @@ static void file_change_m(struct branch *b)
>  	if (!p)
>  		die("Corrupt mode: %s", command_buf.buf);
>  	switch (mode) {
> +	case 0644:
> +	case 0755:
> +		mode |= S_IFREG;
>  	case S_IFREG | 0644:
>  	case S_IFREG | 0755:
>  	case S_IFLNK:
>  	case S_IFGITLINK:
> -	case 0644:
> -	case 0755:
>  		/* ok */
>  		break;
>  	default:
> @@ -1944,7 +1945,7 @@ static void file_change_m(struct branch *b)
>  			    typename(type), command_buf.buf);
>  	}
>  
> -	tree_content_set(&b->branch_tree, p, sha1, S_IFREG | mode, NULL);
> +	tree_content_set(&b->branch_tree, p, sha1, mode, NULL);
>  }
>  
>  static void file_change_d(struct branch *b)
> -- 
> 1.6.0.6.5.ga66c
> 

-- 
Shawn.

^ permalink raw reply

* Re: [RESEND PATCH] fast-import: Cleanup mode setting.
From: Shawn O. Pearce @ 2009-01-14  2:17 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Felipe Contreras, git, Miklos Vajna
In-Reply-To: <alpine.DEB.1.00.0901140308200.3586@pacific.mpi-cbg.de>

Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> On Wed, 14 Jan 2009, Felipe Contreras wrote:
> 
> > "S_IFREG | mode" probably is only required for 0644 and 0755.
> 
> Why should we want to have that patch?  IOW what does it fix, and what 
> might it break?

It cleans up the code to make it more readable.

It makes no sense to be doing S_IFREG | S_IFLINK, which happens when
the input is for a symlink.  It doesn't break anything to do that |
operation, but it also looks damn odd when reading the function.

-- 
Shawn.

^ permalink raw reply

* Re: [RESEND PATCH] fast-import: Cleanup mode setting.
From: Johannes Schindelin @ 2009-01-14  2:28 UTC (permalink / raw)
  To: Shawn O. Pearce; +Cc: Felipe Contreras, git, Miklos Vajna
In-Reply-To: <20090114021751.GW10179@spearce.org>

Hi,

On Tue, 13 Jan 2009, Shawn O. Pearce wrote:

> Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> > On Wed, 14 Jan 2009, Felipe Contreras wrote:
> > 
> > > "S_IFREG | mode" probably is only required for 0644 and 0755.
> > 
> > Why should we want to have that patch?  IOW what does it fix, and what 
> > might it break?
> 
> It cleans up the code to make it more readable.
> 
> It makes no sense to be doing S_IFREG | S_IFLINK, which happens when
> the input is for a symlink.  It doesn't break anything to do that |
> operation, but it also looks damn odd when reading the function.

Imagining myself reading the commit message 6 months from now, in all 
likeliness I will have wished that those two paragraphs were in there.  
Verbatim.

Ciao,
Dscho

^ permalink raw reply

* Re: [RESEND PATCH] fast-import: Cleanup mode setting.
From: Shawn O. Pearce @ 2009-01-14  2:29 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Felipe Contreras, git, Miklos Vajna
In-Reply-To: <alpine.DEB.1.00.0901140326530.3586@pacific.mpi-cbg.de>

Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> On Tue, 13 Jan 2009, Shawn O. Pearce wrote:
> > 
> > It cleans up the code to make it more readable.
> > 
> > It makes no sense to be doing S_IFREG | S_IFLINK, which happens when
> > the input is for a symlink.  It doesn't break anything to do that |
> > operation, but it also looks damn odd when reading the function.
> 
> Imagining myself reading the commit message 6 months from now, in all 
> likeliness I will have wished that those two paragraphs were in there.  
> Verbatim.

Maybe Junio or Felipe can copy it into the message.

Or you can use a git note now to attach it to the commit Junio
hasn't yet created, so you can look it up in the future.  :-)

-- 
Shawn.

^ permalink raw reply

* git merge and cherry-pick and duplicated commits?
From: skillzero @ 2009-01-14  2:40 UTC (permalink / raw)
  To: git

I created a branch from master, did a commit (8e9fdd), then did 2 more
commits (11c59c and 7024d), then did another commit (2daf23). From
master, I did a commit (47bd1b) then cherry-pick'd 2 commits from the
branch (11c59c and 7024d). When merged the branch into master, I see
the 2 cherry-picked commits twice in the log (once from the original
cherry-pick's and again from the merge).

I thought git would realize that master already had those 2 commits
and not add them again when merging?

^ permalink raw reply

* Re: [RESEND PATCH] fast-import: Cleanup mode setting.
From: Felipe Contreras @ 2009-01-14  2:46 UTC (permalink / raw)
  To: Shawn O. Pearce; +Cc: Johannes Schindelin, git, Miklos Vajna
In-Reply-To: <20090114022933.GX10179@spearce.org>

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

On Wed, Jan 14, 2009 at 4:29 AM, Shawn O. Pearce <spearce@spearce.org> wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
>> On Tue, 13 Jan 2009, Shawn O. Pearce wrote:
>> >
>> > It cleans up the code to make it more readable.
>> >
>> > It makes no sense to be doing S_IFREG | S_IFLINK, which happens when
>> > the input is for a symlink.  It doesn't break anything to do that |
>> > operation, but it also looks damn odd when reading the function.
>>
>> Imagining myself reading the commit message 6 months from now, in all
>> likeliness I will have wished that those two paragraphs were in there.
>> Verbatim.
>
> Maybe Junio or Felipe can copy it into the message.
>
> Or you can use a git note now to attach it to the commit Junio
> hasn't yet created, so you can look it up in the future.  :-)

How about the attached patch?

"S_IFREG | mode" probably is only required for 0644 and 0755.

It doesn't make sense to do S_IFREG | S_IFLINK (0100000 | 0120000),
since no bits are changed.

-- 
Felipe Contreras

[-- Attachment #2: 0001-fast-import-Cleanup-mode-setting.patch --]
[-- Type: application/octet-stream, Size: 1324 bytes --]

From 2eee342bb2613a3378ea05d22ecdcc31e58f2e22 Mon Sep 17 00:00:00 2001
From: Felipe Contreras <felipe.contreras@gmail.com>
Date: Mon, 22 Dec 2008 04:13:59 +0200
Subject: [PATCH] fast-import: Cleanup mode setting.

"S_IFREG | mode" probably is only required for 0644 and 0755.

It doesn't make sense to do S_IFREG | S_IFLINK (0100000 | 0120000),
since no bits are changed.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
 fast-import.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/fast-import.c b/fast-import.c
index a6bce66..f0e08ac 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -1872,12 +1872,13 @@ static void file_change_m(struct branch *b)
 	if (!p)
 		die("Corrupt mode: %s", command_buf.buf);
 	switch (mode) {
+	case 0644:
+	case 0755:
+		mode |= S_IFREG;
 	case S_IFREG | 0644:
 	case S_IFREG | 0755:
 	case S_IFLNK:
 	case S_IFGITLINK:
-	case 0644:
-	case 0755:
 		/* ok */
 		break;
 	default:
@@ -1944,7 +1945,7 @@ static void file_change_m(struct branch *b)
 			    typename(type), command_buf.buf);
 	}
 
-	tree_content_set(&b->branch_tree, p, sha1, S_IFREG | mode, NULL);
+	tree_content_set(&b->branch_tree, p, sha1, mode, NULL);
 }
 
 static void file_change_d(struct branch *b)
-- 
1.6.0.6.5.ga66c


^ permalink raw reply related

* Re: [RESEND PATCH] fast-import: Cleanup mode setting.
From: Shawn O. Pearce @ 2009-01-14  2:51 UTC (permalink / raw)
  To: Felipe Contreras; +Cc: Johannes Schindelin, git, Miklos Vajna
In-Reply-To: <94a0d4530901131846u2121e433ka8620fbb37c8470b@mail.gmail.com>

Felipe Contreras <felipe.contreras@gmail.com> wrote:
> 
> How about the attached patch?
> 
> "S_IFREG | mode" probably is only required for 0644 and 0755.
> 
> It doesn't make sense to do S_IFREG | S_IFLINK (0100000 | 0120000),
> since no bits are changed.

Looks fine to me.

-- 
Shawn.

^ permalink raw reply

* Re: ETA for release of gjit 0.4?
From: Jonas Fonseca @ 2009-01-14  3:14 UTC (permalink / raw)
  To: Robin Rosenberg; +Cc: Farrukh Najmi, Shawn O. Pearce, git
In-Reply-To: <200812160517.33975.robin.rosenberg.lists@dewire.com>

Robin Rosenberg <robin.rosenberg.lists@dewire.com> wrote Tue, Dec 16, 2008:
> Jonas, could you help us on this:

Sorry for the long delay. I completely overlooked this. In case it is
still relevant ...

> [INFO] ------------------------------------------------------------------------                                                          
> [ERROR] BUILD ERROR                                                                                                                      
> [INFO] ------------------------------------------------------------------------                                                          
> [INFO] Error deploying artifact: Failed to transfer file: http://egit.googlecode.com/svn/maven/snapshot-repository//org/spearce/jgit/0.4.0/jgit-0.4.0.jar. Return code is: 401                                                                                                                                            
> 
> I added this (nah, naming it release-repository didn't work either)
> 
>         <repository>
>             <id>jgit-maven-release-repository</id>
>             <name>JGit Maven Release Repository</name>
>             <url>https://egit.googlecode.com/svn/maven/snapshot-repository/</url>
>             <uniqueVersion>true</uniqueVersion>
>         </repository>

This will end up mixing snapshots and releases ...
 
> (tried all combinations of dav/not-dav, http/https). Seems I don't have a dav provider, 
> but https should work, right?

Well, I don't know, but I would expect the "dav:" to be required. I used
the Google Maven Repository pom.xml[0] as a template, which should give
something like:

  <repository>
    <id>jgit-maven-repository</id>
    <name>JGit Maven Repository</name>
    <url>dav:https://egit.googlecode.com/svn/maven/repository/</url>
  </repository>

 [0] http://google-maven-repository.googlecode.com/svn/snapshot-repository/com/google/google/1-SNAPSHOT/google-1-20080826.150842-5.pom

> and to ~/.m2/settings.xml
> 
>   <servers>
>     <server>
>       <id>jgit-maven-snapshot-repository</id>
>       <username>tried both my project email and gmail email</username>
>       <password>nah, won't show you</password>
>     </server>
>   </servers>

Try:

  <servers>
    <server>
      <id>jgit-maven-repository</id>
      <username>robin.rosenberg</username>
      <password>Password from http://code.google.com/hosting/settings</password>
    </server>
  </servers>

Hope this helps.

-- 
Jonas Fonseca

^ permalink raw reply

* Re: [RFC/PATCH] gitweb: Fix nested links problem with ref markers
From: Giuseppe Bilotta @ 2009-01-14  3:56 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: git
In-Reply-To: <200901140117.38803.jnareb@gmail.com>

On Tue, Jan 13, 2009 at 7:17 PM, Jakub Narebski <jnareb@gmail.com> wrote:
> On Tue, 13 Jan 2009, Giuseppe Bilotta wrote:
>> On Mon, Jan 12, 2009 at 7:13 PM, Jakub Narebski <jnareb@gmail.com> wrote:
>>> On Mon, 12 Jan 2009, Giuseppe Bilotta wrote:
>>>> On Sun, Jan 11, 2009 at 8:15 PM, Jakub Narebski <jnareb@gmail.com> wrote:
>
> [...]
>> Notice that nested links are actually valid *XML*. Indeed, I asked on
>> www-style and they suggested leaving the problem as-is, serving as
>> html+xml which is what we do.
>
> But nested links are neither valid HTML nor valid XHTML.  This
> restriction (no nested links) is IMVHO quite sensible

Sensible? I think it's idiotic, especially since CSS does not and
cannot provide enough expression power to obtain the same layout and
functionality as what can be achieved by nesting links, so that to
achieve these results one has to resort to horirble trickes,
effectively destroying the whole purporse of HTML+CSS which is to
separate layout from semantics.

But anyway.

>> The float thing was the second suggestion I was given on www-style.
>
> What was the first suggestion? And what is www-style?

The first suggestion was to just leave things as they are. www-style
is www-style@w3c.org, the CSS mailing list of the W3C

>> Can you provide a patch I can apply to my tree for testing to see how
>> it comes up?
>
> Here it is. Note that CSS could be I think reduced. The size of
> gitweb.perl changes is affected by changing calling convention for
> git_print_header_html subroutine.

It's funny, I was working on a very similar patch myself a couple of
days ago, but couldn't get the horizontal filler after the link to
work properly, which is why I asked on www-style.

I'll test your patch and let you know.

> There is also strange artifact at least in Mozilla 1.17.2: if I hover
> over ref marker, the subject (title) gets darker background. Curious...

Might be some kind of bug with the capturing vs bubbling phase.
-- 
Giuseppe "Oblomov" Bilotta

^ permalink raw reply

* [PATCH] Noted that vi is the final choice of editor in git help commit
From: Craig Fratrik @ 2009-01-13 22:33 UTC (permalink / raw)
  To: git; +Cc: Craig Fratrik

---
 Documentation/git-commit.txt |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
index b5d81be..1b9e7a5 100644
--- a/Documentation/git-commit.txt
+++ b/Documentation/git-commit.txt
@@ -318,8 +318,8 @@ ENVIRONMENT AND CONFIGURATION VARIABLES
 ---------------------------------------
 The editor used to edit the commit log message will be chosen from the
 GIT_EDITOR environment variable, the core.editor configuration variable, the
-VISUAL environment variable, or the EDITOR environment variable (in that
-order).
+VISUAL environment variable, the EDITOR environment variable, or finally 'vi'
+(in that order).
 
 HOOKS
 -----
-- 
1.6.0.4.608.ga9645.dirty

^ permalink raw reply related

* .ft tag in man
From: bill lam @ 2009-01-14  5:21 UTC (permalink / raw)
  To: git

The diagram in man contain some .ft tag, eg inside
PAGE=less git help rebase
it contains

           .ft C
                     A---B---C topic
                    /
               D---E---F---G master
           .ft

Is that intended or just an artefact?

-- 
regards,
====================================================
GPG key 1024D/4434BAB3 2008-08-24
gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
唐詩244 柳宗元  江雪
    千山鳥飛絕  萬徑人蹤滅  孤舟簑笠翁  獨釣寒江雪

^ 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