* Re: cg-mkpatch use case
From: Martin Langhoff @ 2006-05-02 22:19 UTC (permalink / raw)
To: Petr Baudis; +Cc: Belmar-Letelier, git
In-Reply-To: <20060502215703.GK27689@pasky.or.cz>
On 5/3/06, Petr Baudis <pasky@suse.cz> wrote:
> not many people actually use it nowadays, I believe. You can apply it
> back using cg-patch (or even patch itself, or git-apply if you are
> lucky), but it won't automagically extract the commit message and
> authorship information.
Erm... I don't personally use it, but cg-patch --long-help tells me...
-c::
Automatically extract the commit message and authorship information
(if provided) from the patch and commit it after applying it
successfuly.
Truth in advertising? ;-)
cheers,
martin
^ permalink raw reply
* Re: cg-mkpatch use case
From: Petr Baudis @ 2006-05-02 21:57 UTC (permalink / raw)
To: Belmar-Letelier; +Cc: git
In-Reply-To: <44570E8E.5070402@itaapy.com>
Hi,
Dear diary, on Tue, May 02, 2006 at 09:47:26AM CEST, I got a letter
where Belmar-Letelier <luis@itaapy.com> said that...
> I have 3 questions about cg-mkpatch
>
> 1. I've receive a file "xxx.patch", this content came from
> cg-mkpatch, but I can't apply it.
> For example if I try git-am I get::
>
> $ git-am --signoff xxx.patch
> Patch does not have a valid e-mail address.
>
> What is the Cogito way to apply the result of "cg-mkpatch"
cg-mkpatch is a very old tool which has been long neglected and
not many people actually use it nowadays, I believe. You can apply it
back using cg-patch (or even patch itself, or git-apply if you are
lucky), but it won't automagically extract the commit message and
authorship information.
> 2. What are the difference between usecases with "cg-mkpatch"
> and "git-format-patch" ?
git-format-patch outputs stuff in the mailbox format while cg-mkpatch
outputs it in a more "human readable" (well, but quite historical)
format, but really, you probably want to use git-format-patch in almost
every case. In the (probably relatively near) future, cg-mkpatch might
become merely a git-format-patch wrapper.
> 3. It seem that if a commit as a binary file they are no way to manage
> it by email patches. Any plan about this in Cogito ?
Not any clear plans. I will welcome patches but it is not high
priority for me currently.
--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
Right now I am having amnesia and deja-vu at the same time. I think
I have forgotten this before.
^ permalink raw reply
* Re: [PATCH] built-in "git grep" (git grip).
From: Junio C Hamano @ 2006-05-02 21:54 UTC (permalink / raw)
To: Linus Torvalds; +Cc: git
In-Reply-To: <Pine.LNX.4.64.0605021422200.4086@g5.osdl.org>
Linus Torvalds <torvalds@osdl.org> writes:
> On Tue, 2 May 2006, Junio C Hamano wrote:
>>
>> - The shell-script one, if you use GNU grep, accepts more
>> options to grep than what the current built-in one supports.
>> Notable ones that are missing: fixed strings (-F), patterns
>> from file (-f), count matches (-c), omit filenames (-h),
>> skipping binary files (-I, -U), files without match (-L),
>> pcre (-P), silent (-q), word expression (-w), NUL (-z). They
>> should be easy to add if somebody cares enough, and I plan to
>> do a few myself before pushing it out to "master".
>
> I use "-w" all the time, along with -5 or similar to get context for the
> grep.
Noted; -w is missing; -A/-B/-C are already there so you could
say -C 5 instead, and -<n> should be easy to add.
On a related tangent, ever since I started using the built-in
grep with ls-files like wildcard, I find myself typing something
like this by mistake (this is from my day-job work project that
has src/mx.js and src/mxstyle.css among other things):
git diff 268a94 -- 'src/mx*'
I am tempted to suggest switching pathspecs used by diff and log
family to do the same wildcarding, perhaps after tightening the
wildcard vs directory prefix logic used in the builtin-grep of
the current "next" tip, which is a bit looser than necessary.
^ permalink raw reply
* Re: [PATCH]: Allow misc https cert for git-svnimport
From: Eric Wong @ 2006-05-02 21:44 UTC (permalink / raw)
To: P. Christeas; +Cc: git, Matthias Urlichs
In-Reply-To: <200604281801.07155.p_christ@hol.gr>
"P. Christeas" <p_christ@hol.gr> wrote:
> Just had to access a server with a broken certificate (self signed), so I
> added that patch to git-svnimport.
Matthias should know more about git-svnimport than I do :)
I'm not fully up-to-date on how the SVN:: modules work for this, nor do
I know off the top of my head an ssl svn server with a self-signed cert
to test with. I just copied the ssl stuff off svn-mirror a while ago :)
> --- /usr/bin/git-svnimport 2006-04-13 09:39:39.000000000 +0300
> +++ /home/panos/bin/git-svnimport 2006-04-28 17:55:45.000000000 +0300
> @@ -96,9 +96,14 @@
> sub conn {
> my $self = shift;
> my $repo = $self->{'fullrep'};
> - my $auth = SVN::Core::auth_open ([SVN::Client::get_simple_provider,
> +# my $auth = SVN::Core::auth_open ([SVN::Client::get_simple_provider,
> +# SVN::Client::get_ssl_server_trust_file_provider,
> +# SVN::Client::get_ssl_server_trust_prompt_provider(\&_trust_callback),
> +# SVN::Client::get_username_provider]);
> + my $auth = [SVN::Client::get_simple_provider,
> SVN::Client::get_ssl_server_trust_file_provider,
> - SVN::Client::get_username_provider]);
> + SVN::Client::get_ssl_server_trust_prompt_provider(\&_trust_callback),
> + SVN::Client::get_username_provider];
> my $s = SVN::Ra->new(url => $repo, auth => $auth);
> die "SVN connection to $repo: $!\n" unless defined $s;
> $self->{'svn'} = $s;
> @@ -125,6 +130,45 @@
> return $name;
> }
>
> +sub _trust_callback {
> + my ($cred,$realm,$ifailed,$server_cert_info,$may_save) = @_;
> + #$cred->accepted_failures($SVN::Auth::SSL::UNKNOWNCA);
> + print "SSL certificate is not trusted: $ifailed \n";
> + print "Fingerprint: " . $server_cert_info->fingerprint . "\n";
> + print "Hostname: ". $server_cert_info->hostname ;
> + print " (MISMATCH)" if ( $ifailed & $SVN::Auth::SSL::CNMISMATCH);
> + print "\n";
> +
> + print "Valid from: ". $server_cert_info->valid_from;
> + print " (NOT YET)" if ( $ifailed & $SVN::Auth::SSL::NOTYETVALID);
> + print "\n";
> +
> + print "Valid until: ". $server_cert_info->valid_until;
> + print " (EXPIRED)" if ( $ifailed & $SVN::Auth::SSL::EXPIRED);
> + print "\n";
> +
> + print "Issuer: ". $server_cert_info->issuer_dname;
> + print " (UNKNOWN)" if ( $ifailed & $SVN::Auth::SSL::UNKNOWNCA);
> + print "\n\n";
> +
> + print "Do you still want to accept that certificate? [y/N] ";
> + my $accept = <STDIN>;
> + chomp($accept);
> + print "\n";
> + if (($accept eq "y") or ($accept eq "Y" )) {
> + $cred->accepted_failures($ifailed);
> + # print "Save cert, so that it is accepted in future calls? [y/N] ";
> + # my $mmsave = <STDIN>;
> + # chomp($mmsave);
> + # if (($mmsave eq "y") or ($mmsave eq "Y" )) {
> + # $may_save = 1;
> + # }
> + print "\n";
> + }
> +
> +}
> +
> +
> package main;
> use URI;
>
--
Eric Wong
^ permalink raw reply
* [PATCH] git-send-email: fix version string to be valid perl
From: Martin Langhoff @ 2006-05-02 21:44 UTC (permalink / raw)
To: git, junkio; +Cc: Martin Langhoff
This makes git-send-email easier to develop and debug, skipping the need
to `make git-send-email` every time.
---
git-send-email.perl | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
1f6dd44e0c919196f9c3d5d617a64111004f24e5
diff --git a/git-send-email.perl b/git-send-email.perl
index ecfa347..2eb4f6c 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -291,6 +291,13 @@ sub send_message
my $to = join (",\n\t", @recipients);
@recipients = unique_email_list(@recipients,@cc);
my $date = strftime('%a, %d %b %Y %H:%M:%S %z', localtime($time++));
+ my $gitversion = '@@GIT_VERSION@@';
+ if ($gitversion =~ m/..GIT_VERSION../) {
+ $gitversion = `git --version`;
+ chomp $gitversion;
+ # keep only what's after the last space
+ $gitversion =~ s/^.* //;
+ }
my $header = "From: $from
To: $to
@@ -299,7 +306,7 @@ Subject: $subject
Reply-To: $from
Date: $date
Message-Id: $message_id
-X-Mailer: git-send-email @@GIT_VERSION@@
+X-Mailer: git-send-email $gitversion
";
$header .= "In-Reply-To: $reply_to\n" if $reply_to;
--
1.3.0.rc4.ge6bf-dirty
^ permalink raw reply related
* Re: cg-mkpatch use case
From: Martin Langhoff @ 2006-05-02 21:41 UTC (permalink / raw)
To: Belmar-Letelier; +Cc: git
In-Reply-To: <44570E8E.5070402@itaapy.com>
On 5/2/06, Belmar-Letelier <luis@itaapy.com> wrote:
> What is the Cogito way to apply the result of "cg-mkpatch"
AFAIK, cg-patch. However, cg-mkpatch appeared before cg-patch, so you
may have a version of Cogito without cg-patch.
> 2. What are the difference between usecases with "cg-mkpatch"
> and "git-format-patch" ?
If you are familiar with git tools, use them instead of cg tools ;-)
Cg is simpler, so if you have relatively simple needs, or a team with
simple needs that doesn't need to know all the git tricks and
internals, it can be a timesaver. In my team, people start with Cg and
eventually evolve into using more and more of git.
cheers,
martin
^ permalink raw reply
* Re: [PATCH] built-in "git grep" (git grip).
From: Linus Torvalds @ 2006-05-02 21:23 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Jakub Narebski, git
In-Reply-To: <7v1wvcmejr.fsf@assigned-by-dhcp.cox.net>
On Tue, 2 May 2006, Junio C Hamano wrote:
>
> - The shell-script one, if you use GNU grep, accepts more
> options to grep than what the current built-in one supports.
> Notable ones that are missing: fixed strings (-F), patterns
> from file (-f), count matches (-c), omit filenames (-h),
> skipping binary files (-I, -U), files without match (-L),
> pcre (-P), silent (-q), word expression (-w), NUL (-z). They
> should be easy to add if somebody cares enough, and I plan to
> do a few myself before pushing it out to "master".
I use "-w" all the time, along with -5 or similar to get context for the
grep.
Linus
^ permalink raw reply
* Re: git-bisect broken in 1.2.4
From: Johannes Schindelin @ 2006-05-02 19:38 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
In-Reply-To: <7vslnskzjj.fsf@assigned-by-dhcp.cox.net>
Hi
On Tue, 2 May 2006, Junio C Hamano wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> > Why not just use the existing method:
> >
> > [core]
> > onlyusesymrefs = false
>
> USE_SYMLINK_HEAD is not enabled by default, and when it is, it
> _defaults_ to use symlink head.
Okay. I missed the part that support is disabled by default.
Sorry for the noise,
Dscho
^ permalink raw reply
* Re: [PATCH] built-in "git grep" (git grip).
From: Junio C Hamano @ 2006-05-02 19:07 UTC (permalink / raw)
To: Jakub Narebski; +Cc: git
In-Reply-To: <e378fs$lpc$1@sea.gmane.org>
Jakub Narebski <jnareb@gmail.com> writes:
>> I renamed "git grip" to "git grep" and "git diffn" to "git diff"
>> both in "next" branch to avoid confusion. Thanks Andreas,
>> Jakub, and others for input.
>
> So, is there a way to use old, script version of those commands?
I'd say that is probably not the real question you wanted to
ask, but let's pretend it is for a moment.
The "master" branch has not been updated to remove the script
one, so you can keep running "master" one (or 1.3.X series). Or
you can fork your own private edition by tweaking git.c (prevent
it from running the builtin one) and Makefile (resurrect the
script based one and prevent it from installing git-grep
hardlinked with git itself). One thing that I will not do in
the long run, however, is to keep the script based one and have
builtin one. It is like carrying all the earlier slightly
incompatible versions as git-grep-1.1.sh, git-grep-1.2.sh, and
git-grep-1.3.sh in the source for fear of backward compatibility
problems -- it is crazy.
So the real question, is what are still missing in the built-in
implementation. What will we lose if we remove the script based
one and replace it with today's built-in one, if we are ready to
do it today, and if not what we are going to do about them. My
answer to the latter questions are "not yet" (obviously, that is
why "master" does not have it yet), and "will support what are
reasonable".
Here are main differences that I am aware of:
- The shell-script one, if you use GNU grep, accepts more
options to grep than what the current built-in one supports.
Notable ones that are missing: fixed strings (-F), patterns
from file (-f), count matches (-c), omit filenames (-h),
skipping binary files (-I, -U), files without match (-L),
pcre (-P), silent (-q), word expression (-w), NUL (-z). They
should be easy to add if somebody cares enough, and I plan to
do a few myself before pushing it out to "master".
- The shell-script one can be coaxed to use different "grep"
implementation from the standard one with an appropriate PATH
settings.
At the lowest level, buitlin-grep.c::grep_buffer() function is
called with the set of parsed options, the "filename" used for
reporting, and the text to grepped in-core. The shell-script
one always worked on working tree files, but the built-in one
can work on working tree files and also alternatively on files
from other versions. Regardless of where the file comes from,
this function is called to look for the pattern the user is
looking for.
You can do two things.
One is to add support for commonly used but still missing
features to built-in one. For this, you would need to extend
"struct grep_opt" to hold new option parameters (e.g. if you
want to do "-f", you would need to hold all patterns you obtain
from the named file so grep_buffer() can use them -- currently
it supports only one pattern), and teach grep_buffer() how to do
the new feature.
Another thing you can do is to detect GIT_EXTERNAL_GREP (in the
same spirit as GIT_EXTERNAL_DIFF) environment variable at the
front of grep_buffer(), and when it is set, spawn the named
external program with the original parameters the user supplied,
probably stashed away in "struct grep_opt" when cmd_grep() does
its parameter parsing, and feed it the contents of the buffer.
^ permalink raw reply
* Re: Features ask for git-send-email
From: Jakub Narebski @ 2006-05-02 15:35 UTC (permalink / raw)
To: git
In-Reply-To: <1146579255.17934.8.camel@pmac.infradead.org>
David Woodhouse wrote:
> On Tue, 2006-05-02 at 14:53 +0200, Jakub Narebski wrote:
>> Doesn't
>> Content-Type: text/plain; charset=$charset
>> header need also
>> MIME-Version: 1.0
>
> Maybe. The use of Content-Type: actually predates RFC2045, and if we
> include a MIME-Version header then we should make 100% sure that we also
> conform to the rest of RFC2045, which I hadn't actually looked at. In
> particular, we should take care of Content-Transfer-Encoding.
>
> I'd prefer to leave MIME-Version out for now, I think.
If I remember correctly _some_ mail applications or news (Usenet) agents
did not respect Content-Type without MIME-Version, I think according to
standard. Perhaps that have changed.
As to the other MIME header:
Content-Transfer-Encoding: 8bit
--
Jakub Narebski
Warsaw, Poland
^ permalink raw reply
* Re: Bug in git log
From: Linus Torvalds @ 2006-05-02 15:26 UTC (permalink / raw)
To: Matthias Kestenholz; +Cc: Junio C Hamano, git
In-Reply-To: <20060502134158.GC4592@spinlock.ch>
On Tue, 2 May 2006, Matthias Kestenholz wrote:
>
> The "double dash" problem is not a big deal since it only happens
> with the deprecated shellscript-version of whatchanged.
Simple enough to fix. Appended.
The problem was that "git-rev-parse --no-flags --no-revs" will show _just_
the filenames from the argument list. That means that it will also remove
the "--" from the original. That's all well and proper, but
git-whatchanged had a bug, and it wouldn't separate the filename arguments
from the flags by adding its own "--".
That bug didn't matter back when we didn't check the parsing all that
carefully. It does now.
> Does anyone get some output with the following command? That was the
> bug I tried to report (sorry for my bad/convoluted english)
>
> $ git log -- unresolve.c
Now, this returns empty, and it actually does that for a reason.
Along the main path, "unresolve.c" has never existed. The modern
"git-whatchanged" (and "git log") is a bit different from the old
big-whatchanged.
The old git-whatchanged would go through _every_ commit, because it
literally did
git-rev-list | git-diff-tree --stdin -- <paths>
and thus the revision list was generated without _any_ regard for the
paths - and every single commit shows up, whether it is relevant or not.
The new revision is based on the revision parsing thing, and the semantics
are a bit different: it semantically does the equivalent of
git-rev-list <paths> | git-diff-tree --stdin -- <paths>
which limits the revision list too on the paths.
And yes, "git log" does the same.
See the discussion a few weeks ago about "path limiting broken", and my
patch that suggested a "--no-prune-merges" flag:
http://www.gelato.unsw.edu.au/archives/git/0604/19180.html
which gives more of an explanation.
Linus
--
diff --git a/git-whatchanged.sh b/git-whatchanged.sh
index 1fb9feb..bb73cff 100755
--- a/git-whatchanged.sh
+++ b/git-whatchanged.sh
@@ -24,5 +24,5 @@ rev_list_args=$(git-rev-parse --sq --def
diff_tree_args=$(git-rev-parse --sq --no-revs --no-flags "$@") &&
eval "git-rev-list $count $rev_list_args" |
-eval "git-diff-tree --stdin --pretty -r $diff_tree_flags $diff_tree_args" |
+eval "git-diff-tree --stdin --pretty -r $diff_tree_flags -- $diff_tree_args" |
LESS="$LESS -S" ${PAGER:-less}
^ permalink raw reply related
* [PATCH] repo-config: trim white-space before comment
From: Johannes Schindelin @ 2006-05-02 14:58 UTC (permalink / raw)
To: git, junkio
Earlier, calling
git-repo-config core.hello
on a .git/config like this:
[core]
hello = world ; a comment
would yield "world " (i.e. with a trailing space).
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
---
I wrote:
> Strange thing I realized: A value is white-space-trimmed at the end
> only if the line does not end with a comment. This fact is accounted
> for in the new tests.
It actually was a buglet in parse_value(), so it was not only
repo-config which was affected.
Obviously, this patch comes on top of the --get-regexp patch, but
feel free to apply without that.
config.c | 12 ++++++------
t/t1300-repo-config.sh | 8 ++++++--
2 files changed, 12 insertions(+), 8 deletions(-)
bb874fdd7a55b7adc229ee9eb1b59e5852b41594
diff --git a/config.c b/config.c
index 4e1f0c2..253c48a 100644
--- a/config.c
+++ b/config.c
@@ -60,6 +60,12 @@ static char *parse_value(void)
space = 1;
continue;
}
+ if (!quote) {
+ if (c == ';' || c == '#') {
+ comment = 1;
+ continue;
+ }
+ }
if (space) {
if (len)
value[len++] = ' ';
@@ -93,12 +99,6 @@ static char *parse_value(void)
quote = 1-quote;
continue;
}
- if (!quote) {
- if (c == ';' || c == '#') {
- comment = 1;
- continue;
- }
- }
value[len++] = c;
}
}
diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh
index 52e8e33..e3ab661 100755
--- a/t/t1300-repo-config.sh
+++ b/t/t1300-repo-config.sh
@@ -247,8 +247,12 @@ EOF
test_expect_success 'hierarchical section value' 'cmp .git/config expect'
+value="$(git-repo-config beta.noindent)"
+
+test_expect_success 'trim before comment' "test \"$value\" = sillyValue"
+
cat > expect << EOF
-beta.noindent=sillyValue
+beta.noindent=sillyValue
nextsection.nonewline=wow2 for me
123456.a123=987
1.2.3.alpha=beta
@@ -258,7 +262,7 @@ test_expect_success 'working --list' \
'git-repo-config --list > output && cmp output expect'
cat > expect << EOF
-beta.noindent sillyValue
+beta.noindent sillyValue
nextsection.nonewline wow2 for me
EOF
--
1.3.1.g259f
^ permalink raw reply related
* Re: Features ask for git-send-email
From: David Woodhouse @ 2006-05-02 14:14 UTC (permalink / raw)
To: Jakub Narebski; +Cc: git
In-Reply-To: <e37km0$vav$1@sea.gmane.org>
On Tue, 2006-05-02 at 14:53 +0200, Jakub Narebski wrote:
> Doesn't
> Content-Type: text/plain; charset=$charset
> header need also
> MIME-Version: 1.0
Maybe. The use of Content-Type: actually predates RFC2045, and if we
include a MIME-Version header then we should make 100% sure that we also
conform to the rest of RFC2045, which I hadn't actually looked at. In
particular, we should take care of Content-Transfer-Encoding.
I'd prefer to leave MIME-Version out for now, I think.
--
dwmw2
^ permalink raw reply
* Re: Bug in git log
From: Matthias Kestenholz @ 2006-05-02 13:41 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
In-Reply-To: <7virooomve.fsf@assigned-by-dhcp.cox.net>
* Junio C Hamano (junkio@cox.net) wrote:
> [...]
> We used to have a build problem where we forgot to remove
> libgit.a and an old object from the archive was used by
> mistake. Could you try rm -f libgit.a and rebuild your git to
> see if it helps?
>
Ok I did that. I also removed all files which were installed by
'make install' and did a complete rebuild and install of the current
master branch. My git version is now 1.3.1.g7464
The "double dash" problem is not a big deal since it only happens
with the deprecated shellscript-version of whatchanged.
Does anyone get some output with the following command? That was the
bug I tried to report (sorry for my bad/convoluted english)
$ git log -- unresolve.c
--
:wq
^ permalink raw reply
* Re: Features ask for git-send-email
From: Jakub Narebski @ 2006-05-02 12:53 UTC (permalink / raw)
To: git
In-Reply-To: <1146573417.14059.21.camel@pmac.infradead.org>
David Woodhouse wrote:
> On Sat, 2006-04-29 at 15:30 +0200, Bertrand Jacquin wrote:
>> Could it be possible to add a features in git-send-email.perl to
>> accept a differrent charset as iso-8859-1 ? I would like to send
>> fr_FR.utf8 mail as I use git to manager a latex files tree which are
>> written in utf8.
>>
>> Any objection ?
>
> Seems reasonable. I think we just forgot to include the Content-Type:
> header. This fixes it...
Doesn't
Content-Type: text/plain; charset=$charset
header need also
MIME-Version: 1.0
--
Jakub Narebski
Warsaw, Poland
^ permalink raw reply
* Re: [PATCH 3/3] fetch: optionally store the current remote information in the config
From: Johannes Schindelin @ 2006-05-02 12:42 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
In-Reply-To: <7v3bfsol9j.fsf@assigned-by-dhcp.cox.net>
Hi,
On Tue, 2 May 2006, Junio C Hamano wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> > This is what the patch series is all about.
> >
> > If there is no interest in a feature like this, let's just forget
> > about the whole "remote info in config" thing.
>
> Well, I took the liberty of adjusting the first one in the
> series and tonight's "pu" has that one and the second one.
> I haven't touched the third one yet, though.
I don't think it is worth introducing yet another way to specify
short-cuts for remote information, if there is not at least one problem
which can get solved easier with it than with the other two ways.
> About the second one, I think it probably is a good idea to
> rename the "refspec used for fetch" as Sean suggested earlier.
Okay.
> I do not like that hidden environment variable that sits in the
> command I use everyday, waiting to be triggered to update my
> .config file, possibly by my PEBCAK mistake when I did not want
> it to do so.
I will refactor it.
> I am not quite sure what this bit is about in the second one:
>
> sed -n \
> -e "s/^URL: /remote.$name.url . /p" \
> -e "s/^Pull: /remote.$name.pull ^$ /p" \
> -e "s/^Push: /remote.$name.push ^$ /p" \
> < "$f"
That is obviously wrong. Will fix while refactoring.
> I think easy conversion tool is a good idea, but I would sleep
> better if it is outside of git-fetch/push chain and is available
> elsewhere, perhaps in contrib/ area.
Will do.
> On a slightly related topic, I think my aversion to your "push
> remotes into config" series the last time was primarily because
> I do not trust repo-config. Reading an already built config
> seems to work OK and I do not worry too much, but I am still
> wary of letting it write. Typing "git repo-config" in a freshly
> initialized empty repository seems to segfault, which does not
> help my confidence level either.
I fixed this error (see separate patch). This was reintroduced by
carelessly checking argv[1] for "--list" and "-l", even if argc < 2. I am
sorry that I did not review that patch.
I tried to make really sure that repo-config works as expected by
introducing quite a few test cases into t1300, but evidently I forgot to
check for things that do not usually break, like calling without
arguments. This is fixed with the patch I just sent out.
This patch also introduces the "--get-regexp" flag to repo-config, which
makes up for the lacking shell wildcards (you can ask questions like:
which keys in the config end in "coatl"?).
As for the trust in repo-config writing the config: it is all done by
calling git_config_set() or git_config_set_multivar(), which you use
yourself to set core.repositoryformatversion, among other values.
Ciao,
Dscho
^ permalink raw reply
* Re: Features ask for git-send-email
From: David Woodhouse @ 2006-05-02 12:36 UTC (permalink / raw)
To: Bertrand Jacquin; +Cc: Git Mailing List
In-Reply-To: <4fb292fa0604290630r19edd7ejf88642e33b350d1d@mail.gmail.com>
On Sat, 2006-04-29 at 15:30 +0200, Bertrand Jacquin wrote:
> Could it be possible to add a features in git-send-email.perl to
> accept a differrent charset as iso-8859-1 ? I would like to send
> fr_FR.utf8 mail as I use git to manager a latex files tree which are
> written in utf8.
>
> Any objection ?
Seems reasonable. I think we just forgot to include the Content-Type:
header. This fixes it...
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
diff --git a/git-send-email.perl b/git-send-email.perl
index ecfa347..1df75f5 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -37,7 +37,7 @@ # Constants (essentially)
my $compose_filename = ".msg.$$";
# Variables we fill in automatically, or via prompting:
-my (@to,@cc,@initial_cc,$initial_reply_to,$initial_subject,@files,$from,$compose,$time);
+my (@to,@cc,@initial_cc,$initial_reply_to,$initial_subject,@files,$from,$compose,$time,$charset);
# Behavior modification variables
my ($chain_reply_to, $smtp_server, $quiet, $suppress_from, $no_signed_off_cc) = (1, "localhost", 0, 0, 0);
@@ -58,6 +58,7 @@ my $rc = GetOptions("from=s" => \$from,
"chain-reply-to!" => \$chain_reply_to,
"smtp-server=s" => \$smtp_server,
"compose" => \$compose,
+ "charset=s" => \$charset,
"quiet" => \$quiet,
"suppress-from" => \$suppress_from,
"no-signed-off-cc|no-signed-off-by-cc" => \$no_signed_off_cc,
@@ -135,6 +136,10 @@ if (!defined $smtp_server) {
$smtp_server = "localhost";
}
+if (!defined $charset) {
+ $charset = "UTF-8";
+}
+
if ($compose) {
# Note that this does not need to be secure, but we will make a small
# effort to have it be unique
@@ -214,6 +219,9 @@ Options:
--cc Specify an initial "Cc:" list for the entire series
of emails.
+ --charset Specify a character set, if legacy character sets are
+ used in change logs instead of UTF-8.
+
--compose Use \$EDITOR to edit an introductory message for the
patch series.
@@ -299,6 +307,7 @@ Subject: $subject
Reply-To: $from
Date: $date
Message-Id: $message_id
+Content-Type: text/plain; charset=$charset
X-Mailer: git-send-email @@GIT_VERSION@@
";
$header .= "In-Reply-To: $reply_to\n" if $reply_to;
--
dwmw2
^ permalink raw reply related
* [PATCH] Give the user a hint for how to continue in the case that git-am fails because it requires user intervention
From: Robert Shearman @ 2006-05-02 12:32 UTC (permalink / raw)
To: git
[-- Attachment #1: Type: text/plain, Size: 789 bytes --]
Give the user a hint for how to continue in the case that git-am fails
because it requires user intervention.
Signed-off-by: Robert Shearman <rob@codeweaves.com>
---
When git-am fails because it needs user intervention, the user may not
know what they need to do to continue with applying the mailbox. This
patch gives them a hint to use git-am (as they may have started the
operation from another tool, such as git-rebase). As the threeway,
interactive and dotest options are not persisted, the user may also
forget to include them (or not realise at all that they should be
included), so we should also tell the user to include these options if
they were orignally specified.
git-am.sh | 26 +++++++++++++++++++++++---
1 files changed, 23 insertions(+), 3 deletions(-)
[-- Attachment #2: ead48bae7157a30589791165b7b71208b68cf229.diff --]
[-- Type: text/x-patch, Size: 1410 bytes --]
ead48bae7157a30589791165b7b71208b68cf229
diff --git a/git-am.sh b/git-am.sh
index 872145b..507ae4d 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -14,6 +14,26 @@ stop_here () {
exit 1
}
+stop_here_user_resolve () {
+ cmdline=$(basename $0)
+ if test '' != "$interactive"
+ then
+ cmdline="$cmdline -i"
+ fi
+ if test '' != "$threeway"
+ then
+ cmdline="$cmdline -3"
+ fi
+ if test '.dotest' != "$dotest"
+ then
+ cmdline="$cmdline -d=$dotest"
+ fi
+ echo "When you have resolved this problem run \"$cmdline --resolved\"."
+ echo "If you would prefer to skip this patch, instead run \"$cmdline --skip\"."
+
+ stop_here $1
+}
+
go_next () {
rm -f "$dotest/$msgnum" "$dotest/msg" "$dotest/msg-clean" \
"$dotest/patch" "$dotest/info"
@@ -374,14 +394,14 @@ do
if test '' = "$changed"
then
echo "No changes - did you forget update-index?"
- stop_here $this
+ stop_here_user_resolve $this
fi
unmerged=$(git-ls-files -u)
if test -n "$unmerged"
then
echo "You still have unmerged paths in your index"
echo "did you forget update-index?"
- stop_here $this
+ stop_here_user_resolve $this
fi
apply_status=0
;;
@@ -407,7 +427,7 @@ do
if test $apply_status != 0
then
echo Patch failed at $msgnum.
- stop_here $this
+ stop_here_user_resolve $this
fi
if test -x "$GIT_DIR"/hooks/pre-applypatch
^ permalink raw reply related
* [PATCH] repo-config: support --get-regexp and fix crash
From: Johannes Schindelin @ 2006-05-02 12:22 UTC (permalink / raw)
To: git, junkio
With --get-regexp, output all key/value pairs where the key matches a
regexp. Example:
git-repo-config --get-regexp remote.*.url
will output something like
remote.junio.url git://git.kernel.org/pub/scm/git/git.git
remote.gitk.url git://git.kernel.org/pub/scm/gitk/gitk.git
This also fixes a crash when no arguments are given, which was introduced
with the "-l" and "--list" handling.
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
---
Junio made me aware of a crash, a fix for which was too easy to
merit a separate patch.
Strange thing I realized: A value is white-space-trimmed at the end
only if the line does not end with a comment. This fact is accounted
for in the new tests.
Documentation/git-repo-config.txt | 5 +++-
repo-config.c | 45 +++++++++++++++++++++++++++++--------
t/t1300-repo-config.sh | 23 +++++++++++++++++++
3 files changed, 62 insertions(+), 11 deletions(-)
diff --git a/Documentation/git-repo-config.txt b/Documentation/git-repo-config.txt
index 566cfa1..ddcf523 100644
--- a/Documentation/git-repo-config.txt
+++ b/Documentation/git-repo-config.txt
@@ -49,7 +49,7 @@ OPTIONS
--replace-all::
Default behaviour is to replace at most one line. This replaces
- all lines matching the key (and optionally the value_regex)
+ all lines matching the key (and optionally the value_regex).
--get::
Get the value for a given key (optionally filtered by a regex
@@ -59,6 +59,9 @@ OPTIONS
Like get, but does not fail if the number of values for the key
is not exactly one.
+--get-regexp::
+ Like --get-all, but interprets the name as a regular expression.
+
--unset::
Remove the line matching the key from .git/config.
diff --git a/repo-config.c b/repo-config.c
index fa8aba7..722153c 100644
--- a/repo-config.c
+++ b/repo-config.c
@@ -6,7 +6,10 @@ static const char git_config_set_usage[]
static char* key = NULL;
static char* value = NULL;
+static regex_t* key_regexp = NULL;
static regex_t* regexp = NULL;
+static int show_keys = 0;
+static int use_key_regexp = 0;
static int do_all = 0;
static int do_not_match = 0;
static int seen = 0;
@@ -26,16 +29,18 @@ static int show_config(const char* key_,
if (value_ == NULL)
value_ = "";
- if (!strcmp(key_, key) &&
+ if ((use_key_regexp || !strcmp(key_, key)) &&
+ (!use_key_regexp ||
+ !regexec(key_regexp, key_, 0, NULL, 0)) &&
(regexp == NULL ||
(do_not_match ^
!regexec(regexp, value_, 0, NULL, 0)))) {
- if (do_all) {
- printf("%s\n", value_);
- return 0;
- }
+ if (show_keys)
+ printf("%s ", key_);
if (seen > 0) {
- fprintf(stderr, "More than one value: %s\n", value);
+ if (!do_all)
+ fprintf(stderr, "More than one value: %s\n",
+ value);
free(value);
}
@@ -50,6 +55,8 @@ static int show_config(const char* key_,
value = strdup(value_);
}
seen++;
+ if (do_all)
+ printf("%s\n", value);
}
return 0;
}
@@ -63,6 +70,14 @@ static int get_value(const char* key_, c
key[i] = tolower(key_[i]);
key[i] = 0;
+ if (use_key_regexp) {
+ key_regexp = (regex_t*)malloc(sizeof(regex_t));
+ if (regcomp(key_regexp, key, REG_EXTENDED)) {
+ fprintf(stderr, "Invalid key pattern: %s\n", regex_);
+ return -1;
+ }
+ }
+
if (regex_) {
if (regex_[0] == '!') {
do_not_match = 1;
@@ -78,7 +93,8 @@ static int get_value(const char* key_, c
git_config(show_config);
if (value) {
- printf("%s\n", value);
+ if (!do_all)
+ printf("%s\n", value);
free(value);
}
free(key);
@@ -102,15 +118,14 @@ int main(int argc, const char **argv)
type = T_INT;
else if (!strcmp(argv[1], "--bool"))
type = T_BOOL;
+ else if (!strcmp(argv[1], "--list") || !strcmp(argv[1], "-l"))
+ return git_config(show_all_config);
else
break;
argc--;
argv++;
}
- if (!strcmp(argv[1], "--list") || !strcmp(argv[1], "-l"))
- return git_config(show_all_config);
-
switch (argc) {
case 2:
return get_value(argv[1], NULL);
@@ -124,6 +139,11 @@ int main(int argc, const char **argv)
else if (!strcmp(argv[1], "--get-all")) {
do_all = 1;
return get_value(argv[2], NULL);
+ } else if (!strcmp(argv[1], "--get-regexp")) {
+ show_keys = 1;
+ use_key_regexp = 1;
+ do_all = 1;
+ return get_value(argv[2], NULL);
} else
return git_config_set(argv[1], argv[2]);
@@ -137,6 +157,11 @@ int main(int argc, const char **argv)
else if (!strcmp(argv[1], "--get-all")) {
do_all = 1;
return get_value(argv[2], argv[3]);
+ } else if (!strcmp(argv[1], "--get-regexp")) {
+ show_keys = 1;
+ use_key_regexp = 1;
+ do_all = 1;
+ return get_value(argv[2], argv[3]);
} else if (!strcmp(argv[1], "--replace-all"))
return git_config_set_multivar(argv[2], argv[3], NULL, 1);
diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh
index ab4dd5c..52e8e33 100755
--- a/t/t1300-repo-config.sh
+++ b/t/t1300-repo-config.sh
@@ -247,6 +247,24 @@ EOF
test_expect_success 'hierarchical section value' 'cmp .git/config expect'
+cat > expect << EOF
+beta.noindent=sillyValue
+nextsection.nonewline=wow2 for me
+123456.a123=987
+1.2.3.alpha=beta
+EOF
+
+test_expect_success 'working --list' \
+ 'git-repo-config --list > output && cmp output expect'
+
+cat > expect << EOF
+beta.noindent sillyValue
+nextsection.nonewline wow2 for me
+EOF
+
+test_expect_success '--get-regexp' \
+ 'git-repo-config --get-regexp in > output && cmp output expect'
+
cat > .git/config << EOF
[novalue]
variable
@@ -255,5 +273,10 @@ EOF
test_expect_success 'get variable with no value' \
'git-repo-config --get novalue.variable ^$'
+git-repo-config > output 2>&1
+
+test_expect_success 'no arguments, but no crash' \
+ "test $? = 129 && grep usage output"
+
test_done
^ permalink raw reply related
* Re: git-bisect broken in 1.2.4
From: Johannes Schindelin @ 2006-05-02 10:42 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Olaf Hering, git, Uwe Zeisberger
In-Reply-To: <7vpsiwopkv.fsf@assigned-by-dhcp.cox.net>
Hi,
On Tue, 2 May 2006, Junio C Hamano wrote:
> Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de> writes:
>
> > You can rebuild git with USE_SYMLINK_HEAD if you really want the old
> > behaviour.
>
> That probably is a sane thing to do.
>
> We should introduce prefer_symlink_refs configuration to work
> with projects whose older version of build infrastructure
> depends on symlink refs.
>
> The patch is on top of post 1.3.1 git, but .c and .h part should
> apply more-or-less cleanly to older code base. You should
> be able to say:
>
> [core]
> prefersymlinkrefs = true
Why not just use the existing method:
[core]
onlyusesymrefs = false
Hmm?
Ciao,
Dscho
^ permalink raw reply
* Re: [PATCH] built-in "git grep" (git grip).
From: Andreas Ericsson @ 2006-05-02 9:39 UTC (permalink / raw)
To: Jakub Narebski; +Cc: git
In-Reply-To: <e378fs$lpc$1@sea.gmane.org>
Jakub Narebski wrote:
> Junio C Hamano wrote:
>
>
>>Andreas Ericsson <ae@op5.se> writes:
>>
>>
>>>"git grip" work just fine for me, since it's only intended for testing
>>>and performance improvements so far. I also think it's clearer for
>>>end-users looking for a grep command if they're not faced with
>>>fgrep/egrep/ggrep/bgrep alongside plain "grep".
>>
>>I renamed "git grip" to "git grep" and "git diffn" to "git diff"
>>both in "next" branch to avoid confusion. Thanks Andreas,
>>Jakub, and others for input.
>
>
> So, is there a way to use old, script version of those commands?
>
Use "master" branch or "git-grep" syntax if you're trying "next" branch.
--
Andreas Ericsson andreas.ericsson@op5.se
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
^ permalink raw reply
* Re: [PATCH] built-in "git grep" (git grip).
From: Jakub Narebski @ 2006-05-02 9:25 UTC (permalink / raw)
To: git
In-Reply-To: <7vy7xkn6kd.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano wrote:
> Andreas Ericsson <ae@op5.se> writes:
>
>> "git grip" work just fine for me, since it's only intended for testing
>> and performance improvements so far. I also think it's clearer for
>> end-users looking for a grep command if they're not faced with
>> fgrep/egrep/ggrep/bgrep alongside plain "grep".
>
> I renamed "git grip" to "git grep" and "git diffn" to "git diff"
> both in "next" branch to avoid confusion. Thanks Andreas,
> Jakub, and others for input.
So, is there a way to use old, script version of those commands?
--
Jakub Narebski
Warsaw, Poland
^ permalink raw reply
* Re: [PATCH] built-in "git grep" (git grip).
From: Junio C Hamano @ 2006-05-02 9:01 UTC (permalink / raw)
To: Andreas Ericsson; +Cc: git
In-Reply-To: <44571967.7080807@op5.se>
Andreas Ericsson <ae@op5.se> writes:
> "git grip" work just fine for me, since it's only intended for testing
> and performance improvements so far. I also think it's clearer for
> end-users looking for a grep command if they're not faced with
> fgrep/egrep/ggrep/bgrep alongside plain "grep".
I renamed "git grip" to "git grep" and "git diffn" to "git diff"
both in "next" branch to avoid confusion. Thanks Andreas,
Jakub, and others for input.
^ permalink raw reply
* Re: [PATCH 3/3] fetch: optionally store the current remote information in the config
From: Junio C Hamano @ 2006-05-02 8:59 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git
In-Reply-To: <Pine.LNX.4.63.0604301524080.2646@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> This is what the patch series is all about.
>
> If there is no interest in a feature like this, let's just forget
> about the whole "remote info in config" thing.
Well, I took the liberty of adjusting the first one in the
series and tonight's "pu" has that one and the second one.
I haven't touched the third one yet, though.
About the second one, I think it probably is a good idea to
rename the "refspec used for fetch" as Sean suggested earlier.
I do not like that hidden environment variable that sits in the
command I use everyday, waiting to be triggered to update my
.config file, possibly by my PEBCAK mistake when I did not want
it to do so.
I am not quite sure what this bit is about in the second one:
sed -n \
-e "s/^URL: /remote.$name.url . /p" \
-e "s/^Pull: /remote.$name.pull ^$ /p" \
-e "s/^Push: /remote.$name.push ^$ /p" \
< "$f"
I am getting this out of the above:
remote.ko.url . xxx.kernel.org:/pub/scm/git/git.git/
remote.ko.pull ^$ master:refs/tags/ko-master
remote.ko.pull ^$ next:refs/tags/ko-next
remote.ko.pull ^$ +pu:refs/tags/ko-pu
remote.ko.pull ^$ maint:refs/tags/ko-maint
remote.ko.push ^$ heads/master
remote.ko.push ^$ heads/next
remote.ko.push ^$ +heads/pu
remote.ko.push ^$ heads/maint
but I suspect that is not what you intended...
I think easy conversion tool is a good idea, but I would sleep
better if it is outside of git-fetch/push chain and is available
elsewhere, perhaps in contrib/ area.
On a slightly related topic, I think my aversion to your "push
remotes into config" series the last time was primarily because
I do not trust repo-config. Reading an already built config
seems to work OK and I do not worry too much, but I am still
wary of letting it write. Typing "git repo-config" in a freshly
initialized empty repository seems to segfault, which does not
help my confidence level either.
^ permalink raw reply
* Re: [PATCH] built-in "git grep" (git grip).
From: Jakub Narebski @ 2006-05-02 8:44 UTC (permalink / raw)
To: git
In-Reply-To: <44571967.7080807@op5.se>
Andreas Ericsson wrote:
> Jakub Narebski wrote:
>> Yes, I understand, but I just don't like using 'grip'. And it would be
>> nice to have some convention for further not-ready-yet built-in
>> replacements for script versions of commands, for example adding letter
>> 'b' as 'built-in' at the beginning of command name: 'bgrep', 'bdiff'. Or
>> use postfix 'n' or '-ng' to denote transitionary not-ready-yet new
>> version of command: 'grepn', 'diffn' or 'grep-ng', 'diff-ng'.
>>
>
> Forcing the user to remember what's implemented as built-ins is not a
> good idea. It was for that exact reason the "git-<command>-script" were
> all renamed "git-<command>" once upon a time.
>
> "git grip" work just fine for me, since it's only intended for testing
> and performance improvements so far. I also think it's clearer for
> end-users looking for a grep command if they're not faced with
> fgrep/egrep/ggrep/bgrep alongside plain "grep".
Well, scratch 'bgrep' idea, even if I had no intend for 'bgrep' to be
persistent name; it was meant as transitionary name. Well, that doesn't
matter much because someone interested in testing new, not-ready-yet
versions of commands (I like 'grepn' idea) usually would follow git
development, and would know (or not) about new version of 'git grep' being
'git grip' (and not 'git grepn').
What about forcing using external grep, and the fact that grep is linked
with libpcre?
--
Jakub Narebski
Warsaw, Poland
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox