Re: [PATCH] contrib/subtree bugfix: Can't `add` annotated tag

2014-05-12 Thread James Denholm
On Fri, May 09, 2014 at 05:36:15PM +1000, James Denholm wrote:
 Junio C Hamano gits...@pobox.com wrote:
  Would it be sufficient to do
 
  git commit-tree $tree $headp -p $rev^0
 
  in that not squashing codepath instead?
 
 On line 561, sure. Do you want me to do a re-roll?

Sorry to bump, but do you want a reroll on this?

---
Regards,
James Denholm.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Linus Torvalds wrote:
 On May 12, 2014 8:35 AM, Felipe Contreras felipe.contre...@gmail.com
 wrote:
 
  This move is already
  under way, but suddenly Junio changed his mind.
 
 That suddenly wouldn't have anything to do with you being an ass and
 difficult as usual, arguing about everything and just generally being
 contrary?

No, here's where the thread started (A):
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248167

Here I wasn't being an ass:
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248186

Here I wasn't being an ass either:
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248171

Neither here:
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248146

Nor here:
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248195

Nor here:
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248205

Not an ass here:
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248213

And not here either:
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248236

Then Junio *suddenly* changed his mind (B):
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248242

That is the sequence of mails (A..B) where I responded, and I wasn't an
ass in eithe one of those, so whatever made Junio change his mind
happened in that interum, and it wasn't me being an ass.

I bet you made that statement without even botherting to read the
thread. Go on, read the thread, tell where exactly me being an ass
made Junio change his mind from A, to B.

Nah, you wouldn't do that, backing up your claims take time, and you are
not willing to spend time on this issue. Even if you were to try to back
up your claim, you couldn't, becasue it's not true. It's much easier to
just throw good sounding baseless claims and walk away.

 Felipe, stop this stupid blaming of everybody but yourself.

Show me evidence that this decision was my fault. Junio certainly hasn't
said so. You just have no idea what we are talking about.

 You make absolutely everything be this horrible disaster, you redefine
 words (regression) to be whatever you need/want them to be to be

git-remote-hg and git-remote-bzr will likely break in Git v2.0 in certain
situations where they wouldn't in v1.9, or v1.8. Call it whatever you
want. I call that a regression.

 Seriously. Don't try to make this about Junio somehow being the problem.

So Junio is perfect. Got it.

If you don't have the time to actually read the rationale behind Junio's
decision, how would you even know he made the right one? You are just
blindly assuming he is right, and therefore he is not the problem.

What if he was wrong? Nah, that's impossible. Right?

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Felipe Contreras wrote:
 Linus Torvalds wrote:
  Felipe, stop this stupid blaming of everybody but yourself.
 
 Show me evidence that this decision was my fault. Junio certainly hasn't
 said so. You just have no idea what we are talking about.

Here, let me show you.

Junio, can you answer these questions?

 1) What is missing from git-remote-hg/bzr in order for them to be
considered to be merged to the core?

 2) If a different maintainer steps up, would you consider reconsider
merging them to the core?

 3) Is there any chance that in the future you would consider them after
they are more mature, and/or perhaps with a different maintainer?

Unless Junio changes his mind again, the answers to those questions
should be clear already to the people following the discussion
(i.e. not you).

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Michael Haggerty
On 05/12/2014 01:34 AM, Felipe Contreras wrote:
 Recently Junio said he was willing to hear the opinion of other people
 regarding the move from contrib to the core[1]. This move is already
 under way, but suddenly Junio changed his mind.

I agree with Junio.  There are good technical arguments for and against
moving git-remote-hg out of contrib.  Those arguments were discussed at
length and I think their weight is on the side of not moving it.  But
there are two other (in my opinion, stronger) reasons for keeping
git-remote-hg out of the core:

1. That subproject has not been maintained to the standards of the Git
project; specifically, Git project standards include good commit
messages and a willingness to engage with the community on a friendly
and constructive way and to welcome feedback.  Because of your
confrontational and nit-picking style, Felipe, many people who have
tried to help you improve your work are rebuffed and end up giving up
out of frustration or exhaustion.  Because of this, your commits do not
benefit from the usual amount of help from the community and therefore
their quality is not as high as required for commits to core Git.

2. Moving git-remote-hg into the core would require even *more* of your
presence on the Git mailing list.  But your very presence is detrimental
to the rest of the community.  You insult and frustrate people who are
trying to help you.  You attribute malign motivations to people who are
trying to be scrupulously fair.  You string out enormous threads of
nit-picking, legalistic argumentativeness that have little to do with
the real issues at hand.

The last big Felipe eruption in the summer of 2013 caused an enormous
amount of strife, wasted an inordinate amount of time of other community
members, and caused at least one valued contributor to temporarily
rage-quit the community.  That episode only ended when Junio asked you
to leave the community [1], which, thankfully, you did for a while.

After you left, the atmosphere of the mailing list soon returned to its
usual friendly, collegial, and efficient norm.

Recently you returned to the mailing list.  In my opinion everybody on
the list, including especially Junio, interacted with you in a very
polite and businesslike manner.  I believe you were given an honest
chance at a fresh start in the community.  I wish you had taken it.  The
Git project could really benefit from the help of a skilled and
energetic developer like you!

But it didn't take long before you started the same theatrics again.
And now again, dealing with your caustic attitude is wasting an order of
magnitude more time of the other core developers than your contributions
could possibly bring in benefits.

For me, the conclusion is unfortunate but clear: Felipe Contreras is (by
far) a net liability to the Git project.  Specifically:

* The Git project will progress faster without you because the other
  contributors will have to waste less time dealing with your antics.

* The Git community will grow faster without you, because your presence
  will not cause existing contributors to withdraw and dissuade new
  contributors from joining.

* The community will be a lot more pleasant without you.

Therefore, I am happy that you have apparently decided to split
git-remote-hg into a separate project.  I wish you success with the
project and I see no reason that it shouldn't continue to be successful.
 But I am glad that I will not have to interact with you anymore.

 [...] Does it make sense to you that
 you get thrown in jail for a crime you haven't committed merely because
 someone thinks it's likely you will?

Being the leader of your own valuable open-source project is nothing
like jail.  It is an opportunity for you to shine in an environment that
is more suited to your personality.

 Given the huge amount of work I've put in these remote helpers, and the
 fact that Junio said since day 1 he wanted these in the core[5] (and I
 was operating under that assumption), I think the demotion back to the
 contrib area (and therefore out-of-tree) should be made carefully, and
 not from one day to he next as it happened.

None of the work was wasted.  git-remote-hg can live on.

This email is written in sorrow, not in anger.  Felipe, you seem to have
so much potential.  If you would put as much effort in conducting social
interactions as you do in coding, the whole balance would change
entirely, and any software project would be happy to have you.  With all
my heart I truly wish you the best in your future endeavors.

Michael

[1] http://article.gmane.org/gmane.comp.version-control.git/227750

-- 
Michael Haggerty
mhag...@alum.mit.edu
http://softwareswirl.blogspot.com/
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Stefan Beller
2014-05-12 10:12 GMT+02:00 Felipe Contreras felipe.contre...@gmail.com:
 Felipe Contreras wrote:
 Linus Torvalds wrote:
  Felipe, stop this stupid blaming of everybody but yourself.

 Show me evidence that this decision was my fault. Junio certainly hasn't
 said so. You just have no idea what we are talking about.

 Here, let me show you.


I suspect Linus had a reason not to include the mailing lists
in the first place and make a huge public discussion,
but instead wrote to you personally.
I guess this is just Linus desire not to waste the time of everybody
as he learned that these discussions are fruitless sometimes.

Junio C Hamano wrote [in another thread]:
 I would not mind asking the others, as your discussion tactic seems
 to be repeated voices start sounding like a chorus, and a chorus is
 project concensus.

 Those who are observing from the sideline, please raise your hand if
 you think the three-line Clarification Felipe gave us is a fair
 and accurate clarification.  Anybody?

 I also do not mind seeing hands raised of those who do not agree,
 even though I already know that they would be a silent majority.

I think Junio is behaving very professional unlike you, Felipe.
This includes being polite and very patient.
Also this includes weighting different reasons to make
informed rational decisions.

Git being a project widely used and people trusting it for their
work needs to have high quality and cannot go left today and
go right tomorrow, but most of the decisions are done long-term.

Felipe, this may be the reason, why you think nothing changes.
It's just slower than you'd like, but with more thoughts weighted.

Junio, I think you're doing an awesome job in maintaining Git
and leading the community.

Stefan
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Dennis Kaarsemaker
Michael,

Thank you for writing this, I have to see I agree completely. As a
mostly lurker on this list, I tend to skip any thread Felipe is
participating in, as it tends to quickly spiral out of control.

This is also the main reason for me not to actively participate a bit
more, I prefer reasonable discussions over fighting.

On ma, 2014-05-12 at 11:42 +0200, Michael Haggerty wrote:
 On 05/12/2014 01:34 AM, Felipe Contreras wrote:
  Recently Junio said he was willing to hear the opinion of other people
  regarding the move from contrib to the core[1]. This move is already
  under way, but suddenly Junio changed his mind.
 
 I agree with Junio.  There are good technical arguments for and against
 moving git-remote-hg out of contrib.  Those arguments were discussed at
 length and I think their weight is on the side of not moving it.  But
 there are two other (in my opinion, stronger) reasons for keeping
 git-remote-hg out of the core:
 
 1. That subproject has not been maintained to the standards of the Git
 project; specifically, Git project standards include good commit
 messages and a willingness to engage with the community on a friendly
 and constructive way and to welcome feedback.  Because of your
 confrontational and nit-picking style, Felipe, many people who have
 tried to help you improve your work are rebuffed and end up giving up
 out of frustration or exhaustion.  Because of this, your commits do not
 benefit from the usual amount of help from the community and therefore
 their quality is not as high as required for commits to core Git.
 
 2. Moving git-remote-hg into the core would require even *more* of your
 presence on the Git mailing list.  But your very presence is detrimental
 to the rest of the community.  You insult and frustrate people who are
 trying to help you.  You attribute malign motivations to people who are
 trying to be scrupulously fair.  You string out enormous threads of
 nit-picking, legalistic argumentativeness that have little to do with
 the real issues at hand.
 
 The last big Felipe eruption in the summer of 2013 caused an enormous
 amount of strife, wasted an inordinate amount of time of other community
 members, and caused at least one valued contributor to temporarily
 rage-quit the community.  That episode only ended when Junio asked you
 to leave the community [1], which, thankfully, you did for a while.
 
 After you left, the atmosphere of the mailing list soon returned to its
 usual friendly, collegial, and efficient norm.
 
 Recently you returned to the mailing list.  In my opinion everybody on
 the list, including especially Junio, interacted with you in a very
 polite and businesslike manner.  I believe you were given an honest
 chance at a fresh start in the community.  I wish you had taken it.  The
 Git project could really benefit from the help of a skilled and
 energetic developer like you!
 
 But it didn't take long before you started the same theatrics again.
 And now again, dealing with your caustic attitude is wasting an order of
 magnitude more time of the other core developers than your contributions
 could possibly bring in benefits.
 
 For me, the conclusion is unfortunate but clear: Felipe Contreras is (by
 far) a net liability to the Git project.  Specifically:
 
 * The Git project will progress faster without you because the other
   contributors will have to waste less time dealing with your antics.
 
 * The Git community will grow faster without you, because your presence
   will not cause existing contributors to withdraw and dissuade new
   contributors from joining.
 
 * The community will be a lot more pleasant without you.
 
 Therefore, I am happy that you have apparently decided to split
 git-remote-hg into a separate project.  I wish you success with the
 project and I see no reason that it shouldn't continue to be successful.
  But I am glad that I will not have to interact with you anymore.
 
  [...] Does it make sense to you that
  you get thrown in jail for a crime you haven't committed merely because
  someone thinks it's likely you will?
 
 Being the leader of your own valuable open-source project is nothing
 like jail.  It is an opportunity for you to shine in an environment that
 is more suited to your personality.
 
  Given the huge amount of work I've put in these remote helpers, and the
  fact that Junio said since day 1 he wanted these in the core[5] (and I
  was operating under that assumption), I think the demotion back to the
  contrib area (and therefore out-of-tree) should be made carefully, and
  not from one day to he next as it happened.
 
 None of the work was wasted.  git-remote-hg can live on.
 
 This email is written in sorrow, not in anger.  Felipe, you seem to have
 so much potential.  If you would put as much effort in conducting social
 interactions as you do in coding, the whole balance would change
 entirely, and any software project would be happy to have you.  With all
 my heart I truly wish you the 

Re: Watchman support for git

2014-05-12 Thread Duy Nguyen
On Mon, May 12, 2014 at 5:56 AM, David Turner dtur...@twopensource.com wrote:
 So without watchman I got

299.871ms read_index_from:1538 if (verify_hdr(hdr, mmap_size)  0) go
498.205ms cmd_status:1300 refresh_index(the_index, REFRESH_QUIE
796.050ms wt_status_collect:622 wt_status_collect_untracked(s)

 and with watchman (git status ran several times to make sure it's cached)

301.950ms read_index_from:1538 if (verify_hdr(hdr, mmap_size)  0) go
 34.918ms  read_fs_cache:347 if (verify_hdr(hdr, mmap_size)  0) go
   1564.096ms  watchman_load_fs_cache:628 update_fs_cache(istate, result);
161.930ms cmd_status:1300 refresh_index(the_index, REFRESH_QUIE
251.614ms wt_status_collect:622 wt_status_collect_untracked(s)

 Given the total time of git status without watchman is 1.9s,,
 update_fs_cache() nearly matches that number alone. All that is spent
 in the exclude update code in the function, but if you do
 last_excluding_matching() anyway, why cache it?

 My numbers are different (for my test repository):

 ---
 30.031ms read_index:1386 r = read_index_from(istate, get_index_
 71.625ms cmd_status:1302 refresh_index(the_index, REFRESH_QUIE
259.712ms wt_status_collect:622 wt_status_collect_untracked(s)
 
 41.110ms read_index:1386 r = read_index_from(istate, get_index_
  9.294ms read_fs_cache:347 if (verify_hdr(hdr, mmap_size)  0) go
  0.173ms watchman_load_fs_cache:628 update_fs_cache(istate, result)
 41.901ms read_index:1386 r = read_index_from(istate, get_index_
 18.355ms cmd_status:1302 refresh_index(the_index, REFRESH_QUIE
 50.911ms wt_status_collect:622 wt_status_collect_untracked(s)
 ---

 I think something must be going wrong with update_fs_cache on your
 machine.  I have a few hypotheses:

 1. Maybe watchman isn't fully started up when you run your tests.
 2. Maybe there is a bug.

It's probably me doing something wrong (I ran it more than a couple
times so watchman must have loaded the whole thing). I got small
numbers in update_fs_cache() now.

 A bit surprised about wt_status_collect_untracked number. I verified
 that last_excluding_matching() still runs (on the same number of
 entries like in no-watchman case). Replacing fs_cache_open() in
 add_excludes_from_file_to_list() to plain open() does not change the
 number, so we probably won't need that (unless your worktree is filled
 with .gitignore, which I doubt it's a norm).

 My test repo has a couple hundred of them.  Maybe that's unusual?  A
 repo with a lot of projects will tend to have lots of gitignore files,
 because each project will want to maintain them independently.

I tried the worst case, every directory had an empty .gitignore. The
numbers did not change much. And I found out that because
add_excludes.. were called twice, not on every .gitignore because of
the condition !(dir-flags  DIR_EXCLUDE_CMDL_ONLY). So the number
of .gitignore does not matter (yet).

This is your quote from above, moved down a bit:

 update_fs_cache should only have to update based on what it has learned
 from watchman.  So if no .gitignore has been changed, it should not have
 to do very much work.

 I could take the fe_excluded check and move it above the
 last_exclude_matching check in fs_cache_is_excluded; it causes t7300 to
 fail when run under watchman but presumably that's fixable

So you exclude files early and make the real read_directory() pass do
pretty much nothing. This is probably not a good idea. Assume that I
touch $TOP/.gitignore then do something other than git status (or
git add) then I have to pay read_directory() cost.

Back to the open vs fs_cache_open and the number of .gitignore files
above. I touch $TOP/.gitignore then do git status to make it read
all .gitignore files (6k of them) and change between open and
fs_cache_open. I think the numbers still  do not make any visible
difference (~1620-1630ms).
-- 
Duy
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Michael Haggerty wrote:
 On 05/12/2014 01:34 AM, Felipe Contreras wrote:
  Recently Junio said he was willing to hear the opinion of other people
  regarding the move from contrib to the core[1]. This move is already
  under way, but suddenly Junio changed his mind.
 
 I agree with Junio.  There are good technical arguments for and against
 moving git-remote-hg out of contrib.

Saying you agree with Junio is content-free. You have to say *why* you
agree.

You mention there are good technical arguments against the graduation of
the tools. Surely if you have analyzed those arguments enough to form an
opinion aligned with Junio's, it should be easy to provide a short
summary of those good technical arguments. Can you do that?

 1. That subproject has not been maintained to the standards of the Git
 project;

The quality of the subjproject has not been called into question, stop
taiting the discussion with red herrings.

 2. Moving git-remote-hg into the core would require even *more* of your
 presence on the Git mailing list.

That's not true. I sent my patches at my own pace, it doesn't matter if
they are in contrib or in the core, I would have kept sending them at
the same pace. I have addressed all issues and responded to all
questions as if they were already part of the core, which is why they
have more quality than other tools already in the core. I only stopped
doing that when Junio changed the direction we had since day one.

Also a red herring.

  [...] Does it make sense to you that
  you get thrown in jail for a crime you haven't committed merely because
  someone thinks it's likely you will?
 
 Being the leader of your own valuable open-source project is nothing
 like jail.  It is an opportunity for you to shine in an environment that
 is more suited to your personality.

Don't be ridiculous. There is no out-of-tree tool that could possibly
compete in popularity against core tools.

If you think being out-of-tree is not a negative, lets throw out
git-archimport, git-quiltimport, git-p4, git-cvs, git-svn. Let us give
them an opportunity to shine.

You know that those tools do better in the core, and you know
git-remote-hg/bzr would do better in the core. Don't act as if you
didn't.

 This email is written in sorrow, not in anger.  Felipe, you seem to have
 so much potential.  If you would put as much effort in conducting social
 interactions as you do in coding, the whole balance would change
 entirely, and any software project would be happy to have you.  With all
 my heart I truly wish you the best in your future endeavors.

Let's see how sincere you are in your sentiment. I'll reply to you
personally about the points that I consider to be red herrings and ad
hominem attacks so we don't taint the dicussion. If you don't reply I'll
know you were not being sincere.

Cheers.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread David Kastrup
Michael Haggerty mhag...@alum.mit.edu writes:

 This email is written in sorrow, not in anger.  Felipe, you seem to
 have so much potential.  If you would put as much effort in conducting
 social interactions as you do in coding, [...]

I think that's where you are mistaken.  We are not talking about a lack
of effort here.  It is just not spent conducively.

-- 
David Kastrup
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] gitk: Allow displaying time zones from author and commit timestamps

2014-05-12 Thread Anders Kaseorg
Now gitk can be configured to display author and commit dates in their
original timezone, by putting %z into datetimeformat in ~/.gitk.

Signed-off-by: Anders Kaseorg ande...@mit.edu
---
Re-sending from 2011:
http://thread.gmane.org/gmane.comp.version-control.git/165286/focus=174786

 gitk | 24 +++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/gitk b/gitk
index 90764e8..b4712cd 100755
--- a/gitk
+++ b/gitk
@@ -11575,7 +11575,29 @@ proc prefsok {} {
 proc formatdate {d} {
 global datetimeformat
 if {$d ne {}} {
-   set d [clock format [lindex $d 0] -format $datetimeformat]
+   # If $datetimeformat includes a timezone, display in the
+   # timezone of the argument.  Otherwise, display in local time.
+   if {[string match {*%[zZ]*} $datetimeformat]} {
+   if {[catch {set d [clock format [lindex $d 0] -timezone [lindex $d 
1] -format $datetimeformat]}]} {
+   # Tcl  8.5 does not support -timezone.  Emulate it by
+   # setting TZ (e.g. TZ=-0430+04:30).
+   global env
+   if {[info exists env(TZ)]} {
+   set savedTZ $env(TZ)
+   }
+   set zone [lindex $d 1]
+   set sign [string map {+ - - +} [string index $zone 0]]
+   set env(TZ) $zone$sign[string range $zone 1 2]:[string range 
$zone 3 4]
+   set d [clock format [lindex $d 0] -format $datetimeformat]
+   if {[info exists savedTZ]} {
+   set env(TZ) $savedTZ
+   } else {
+   unset env(TZ)
+   }
+   }
+   } else {
+   set d [clock format [lindex $d 0] -format $datetimeformat]
+   }
 }
 return $d
 }
-- 
2.0.0.rc3

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Michael Haggerty
On 05/12/2014 12:37 PM, Felipe Contreras wrote:
 Michael Haggerty wrote:
 On 05/12/2014 01:34 AM, Felipe Contreras wrote:
 Recently Junio said he was willing to hear the opinion of other people
 regarding the move from contrib to the core[1]. This move is already
 under way, but suddenly Junio changed his mind.

 I agree with Junio.  There are good technical arguments for and against
 moving git-remote-hg out of contrib.
 
 Saying you agree with Junio is content-free. You have to say *why* you
 agree.

Actually, I don't have to, not even if you tell me to.  And anyway, I
think the small technical advantages/disadvantages of the possible
different locations for git-remote-hg are dwarfed by the social
considerations so I think dwelling on technical considerations would
sidetrack this discussion.

 [...]
 
 1. That subproject has not been maintained to the standards of the Git
 project;
 
 The quality of the subjproject has not been called into question, stop
 taiting the discussion with red herrings.

On the contrary.  I just called the quality of the subproject into
question, and I stated exactly which aspects of its quality I find to be
inadequate in the text that you omitted from your response:

 [...] specifically, Git project standards include good commit
 messages and a willingness to engage with the community on a friendly
 and constructive way and to welcome feedback.  Because of your
 confrontational and nit-picking style, Felipe, many people who have
 tried to help you improve your work are rebuffed and end up giving up
 out of frustration or exhaustion.  Because of this, your commits do not
 benefit from the usual amount of help from the community and therefore
 their quality is not as high as required for commits to core Git.

Commit quality very definitely includes the quality of log messages and
the quality of the discussion on the mailing list that can inform people
working on those areas of the code in the future.

 2. Moving git-remote-hg into the core would require even *more* of your
 presence on the Git mailing list.
 
 That's not true. I sent my patches at my own pace, it doesn't matter if
 they are in contrib or in the core, I would have kept sending them at
 the same pace. I have addressed all issues and responded to all
 questions as if they were already part of the core, which is why they
 have more quality than other tools already in the core. I only stopped
 doing that when Junio changed the direction we had since day one.
 
 Also a red herring.

OK, maybe you are technically correct there.  There is indeed a
difference between  and =.  Let me amend my claim:

2. Moving git-remote-hg into the core would require you to continue your
   presence on the Git mailing list.

 [...] Does it make sense to you that
 you get thrown in jail for a crime you haven't committed merely because
 someone thinks it's likely you will?

 Being the leader of your own valuable open-source project is nothing
 like jail.  It is an opportunity for you to shine in an environment that
 is more suited to your personality.
 
 Don't be ridiculous. There is no out-of-tree tool that could possibly
 compete in popularity against core tools.

I never made that claim.  I claimed that it was nothing like jail, and
I stand by that claim.  I also think that the Git community is a place
unsuited to someone with your personality, and that you might truly
shine more in an independent project.

 If you think being out-of-tree is not a negative, lets throw out
 git-archimport, git-quiltimport, git-p4, git-cvs, git-svn. Let us give
 them an opportunity to shine.

In my opinion, the technical issues for moving importers are not
overwhelming.  Therefore, I don't have a strong opinion about the future
of these other tools, because their presence in the Git tree is not
coupled to the continued presence of a problematic subproject maintainer.

 You know that those tools do better in the core, and you know
 git-remote-hg/bzr would do better in the core. Don't act as if you
 didn't.

I maintain cvs2svn/cvs2git outside of the Git core.  In fact, one of
cvs2git's competitors, git cvsimport *is* in Git core.  Nevertheless,
users have no problem finding cvs2git, and I think it's safe to say that
its reputation exceeds that of git cvsimport, even though some people
accidentally use git cvsimport out of laziness.

People who need to do a conversion from A to B only have to Google for
A B and they will find the best conversion tools pretty easily.  If
the tools are packaged for their OS then they are just an apt-get
install away from happiness.  And given that tools like cvs2git or
git-remote-hg, don't even need to be compiled, users can install them
pretty easily themselves.

 This email is written in sorrow, not in anger.  Felipe, you seem to have
 so much potential.  If you would put as much effort in conducting social
 interactions as you do in coding, the whole balance would change
 entirely, and any software project would be happy 

Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Stefan Beller wrote:
 2014-05-12 10:12 GMT+02:00 Felipe Contreras felipe.contre...@gmail.com:
  Felipe Contreras wrote:
  Linus Torvalds wrote:
   Felipe, stop this stupid blaming of everybody but yourself.
 
  Show me evidence that this decision was my fault. Junio certainly hasn't
  said so. You just have no idea what we are talking about.
 
  Here, let me show you.
 
 I suspect Linus had a reason not to include the mailing lists
 in the first place

Huh?

He did include the mailing lists in the first place[1]. Either something
is wrong with the mailing list, or somebody is removing the mails.

You can see the full thread in the git-fc mailing list, and there you
can see the git ml is included in all the mails, including the one you
just sent, where you included the git ml, and it doesn't show in the
archives.

 and make a huge public discussion, but instead wrote to you
 personally.  I guess this is just Linus desire not to waste the time
 of everybody as he learned that these discussions are fruitless
 sometimes.

Don't you agree that including transparent bridges for Mercurial and
Bazaar distributed by default would be benefitial to the project?

If a discussion could potentially lead to them being included, I'd say
that wouldn't be fruitless, but it's *precisely* what our end users
would like us to be discussing right now.

 Junio C Hamano wrote [in another thread]:
  I would not mind asking the others, as your discussion tactic seems
  to be repeated voices start sounding like a chorus, and a chorus is
  project concensus.
 
  Those who are observing from the sideline, please raise your hand if
  you think the three-line Clarification Felipe gave us is a fair
  and accurate clarification.  Anybody?
 
  I also do not mind seeing hands raised of those who do not agree,
  even though I already know that they would be a silent majority.
 
 I think Junio is behaving very professional unlike you, Felipe.
 This includes being polite and very patient.

 Also this includes weighting different reasons to make
 informed rational decisions.

Where is he weighting the different reasons? I've asked him multiple
times to provide those reasons. He mensions there's one, but he doesn't
say which one it is.

If I haven't see this reason, how do you know he is weighing different
ones?

 Git being a project widely used and people trusting it for their
 work needs to have high quality and cannot go left today and
 go right tomorrow, but most of the decisions are done long-term.

Yes. What is right, and what is left in this example?

Presumably going right would be to include these tools in the core, but
that would imply that he plans to go left in the future. But he hasn't
said that. So what makes you think the project would go left in the
future?

 Felipe, this may be the reason, why you think nothing changes.
 It's just slower than you'd like, but with more thoughts weighted.

Really? I'll issue the same challenge I've issued to many people.

Name a single important change in Git (was one way before, it's another
way now) that has happened in the last 5 years. And by important I mean
for starters users noticed it.

You won't be able to, because nothing ever changes.

 Junio, I think you're doing an awesome job in maintaining Git
 and leading the community.

Maintaining, yes, but leading? Leading it where?

[1] https://groups.google.com/forum/#!original/git-fc/Clhss-fXS2k/9UtiilJ2WQ4J

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/4] remote-hg: more improvements

2014-05-12 Thread Philippe Vaucher
Nevermind, it'd be more efficient to cover this in the other main
thread started by Felipe. You can answer my questions there instead as
it'll likely benefit a wider audience.

Philippe
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Michael Haggerty wrote:
 On 05/12/2014 12:37 PM, Felipe Contreras wrote:
  Michael Haggerty wrote:
  On 05/12/2014 01:34 AM, Felipe Contreras wrote:
  Recently Junio said he was willing to hear the opinion of other people
  regarding the move from contrib to the core[1]. This move is already
  under way, but suddenly Junio changed his mind.
 
  I agree with Junio.  There are good technical arguments for and against
  moving git-remote-hg out of contrib.
  
  Saying you agree with Junio is content-free. You have to say *why* you
  agree.
 
 Actually, I don't have to,

Then there's no point in reading what else you have to say. Whatever
reasons you might have to agree with Junio are known only to you, thus
your agreement is opaque and meaningless.

  The quality of the subjproject has not been called into question, stop
  taiting the discussion with red herrings.
 
 On the contrary.  I just called the quality of the subproject into
 question, and I stated exactly which aspects of its quality I find to be
 inadequate in the text that you omitted from your response:

I'll wait until somebody else calls into question the quality.
Preferably somebody who backs up his claims with evidence.

 OK, maybe you are technically correct there.  There is indeed a
 difference between  and =.  Let me amend my claim:
 
 2. Moving git-remote-hg into the core would require you to continue your
presence on the Git mailing list.

That is another red herring. Moving them back to the contrib/ area which
is what Junio proposed would also require my presence on the list. Is
that what you want?

And there's the transport helper, and bash completion, and the zsh
completion.

  [...] Does it make sense to you that
  you get thrown in jail for a crime you haven't committed merely because
  someone thinks it's likely you will?
 
  Being the leader of your own valuable open-source project is nothing
  like jail.  It is an opportunity for you to shine in an environment that
  is more suited to your personality.
  
  Don't be ridiculous. There is no out-of-tree tool that could possibly
  compete in popularity against core tools.
 
 I never made that claim.  I claimed that it was nothing like jail, and
 I stand by that claim.

In the context of the Git project what is the *worst* thing the
maintainer can do to a piece of code but delete it? So I think you are
right, the jail analogy is not correct; it's *execution*.

  You know that those tools do better in the core, and you know
  git-remote-hg/bzr would do better in the core. Don't act as if you
  didn't.

 People who need to do a conversion from A to B only have to Google for
 A B and they will find the best conversion tools pretty easily.

Let's test that hypothesis:

Google: how to conver mercurial to git

 * Convert Mercurial project to Git - Stack Overflow (NOPE)
 * Converting a Mercurial repository to Git (YEAP: one among many)

Oh, but would you look at that:

  This script will actually be shipping with git at some point, which
  gives it some credibility in my book.

 * frej/fast-export · GitHub (NOPE)
 * Hg-Git Mercurial Plugin (NOPE)
 * Converting Hg repositories to Git (NOPE)
 * Converting from Mercurial to Git - Hivelogic (NOPE)
 * Converting Repositories From Git to Mercurial (NOPE)
 * hg-fast-export: convert Mercurial repositories (NOPE)
 * Converting Mercurial (Hg) to Git Repository on Mac (NOPE)
 * Bitbucket: Converting Hg repositories to Git (NOPE)

So pretty much hypoethesis failed. That fact that you would even think
people would quickly find about git-remote-hg shows exactly how detached
you are from the problem.

 If the tools are packaged for their OS then they are just an apt-get
 install away from happiness.

Oh, they are packaged already (as part of Git). Moving them out-of-tree
will make it much more difficult for users to find them, and install
them. It will take time for them to be packaged, if it happens at all.

  Let's see how sincere you are in your sentiment. I'll reply to you
  personally about the points that I consider to be red herrings and ad
  hominem attacks so we don't taint the dicussion. If you don't reply I'll
  know you were not being sincere.
 
 Jumping at your every demand is not a prerequisite for being sincere.

I spent a lot of time writing that mail. Not sincere it is then.

-- 
Felipe Contreras--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] Make it possible to update git_wcwidth()

2014-05-12 Thread Peter Krefting

Torsten Bögershausen:


The function git_wcwidth() returns for a given unicode code point the
width on the display:
-1 for control characters,
0 for combining or other non-visible code points
1 for e.g. ASCII
2 for double-width code points.


This all looks sane, but the problem is that this is also 
context-dependent since there are a lot of characters with ambiguous 
widths, i.e., characters that are double width for CJK locales (and 
fonts), but single width for others. This includes Greek and 
Cyrillic characters, which are encoded using the double-byte parts of 
the CJK DBCS encodings.


I'm not quite sure how much impact this would have on day-to-day Git 
operation in a CJK locale, however, as I guess they would mostly 
encounter texts in their own language (which would mostly be double 
width) or English (which would be unambiguously single width).


Anyone on the list running Git in a CJK locale that would like to 
weigh in here?


--
\\// Peter - http://www.softwolves.pp.se/
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Paolo Ciarrocchi wrote:
 On Mon, May 12, 2014 at 11:42 AM, Michael Haggerty 
 mhag...@alum.mit.eduwrote:
 
  Felipe, you seem to have so much potential.  If you would put as
  much effort in conducting social interactions as you do in coding,
  the whole balance would change entirely, and any software project
  would be happy to have you.  With all my heart I truly wish you the
  best in your future endeavors.
 
 I really *love* this paragraph. Felipe, you are a brilliant developer
 and you put a lot of work trying to improve GIT.

Thanks.

 While I agree with you the this project is managed in a bit conservative
 way

Only a bit? I don't think I've been involed in a more conservative open
source project.

 you should really improve how you communicate with other developers,
 it's such a pity your contributions are some times not included in
 git.git just because of your attitude.

But that's a theory. You don't *know* that they would have been included
had I used a different attitude.

In fact, people have contacted me privately saying similar things, and
I'll give you the same challenge I gave them. If you think a different
attitude would get my patches in, how about *you* write the commit
messages and the discussions for one of my stuck patch series. I'll send
the mails as if I had written the content.

If you are right, the different attitude would make the patches land in
no time. I still think it's not right for patches to be rejected simply
because of attitude, but I would accept you were right.

But I think you already know that won't happen, the patches still won't
get in, not because of the attitude, but because of what they are trying
to do: change things.

So if I *know* certain feature would be useful for Git users, I've
listened to all the comments, and addressed all the problems, why would
I give up on those patches? Why would I work on something more boring
that won't benefit users as much but would have higher chances of
getting in?

I'm doing this on my own free time, I can choose to do whatever I want,
in whatever way I want, so no, I'll keep working on what I think is
important.

If you really think the patches can be accepted with a different
attitude, by all means, let's do the experiment and find out.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread David Kastrup
Felipe Contreras felipe.contre...@gmail.com writes:

 Michael Haggerty wrote:
 On 05/12/2014 12:37 PM, Felipe Contreras wrote:
  Michael Haggerty wrote:
  On 05/12/2014 01:34 AM, Felipe Contreras wrote:
  Recently Junio said he was willing to hear the opinion of other people
  regarding the move from contrib to the core[1]. This move is already
  under way, but suddenly Junio changed his mind.
 
  I agree with Junio.  There are good technical arguments for and against
  moving git-remote-hg out of contrib.
  
  Saying you agree with Junio is content-free. You have to say *why* you
  agree.
 
 Actually, I don't have to,

 Then there's no point in reading what else you have to say. Whatever
 reasons you might have to agree with Junio are known only to you, thus
 your agreement is opaque and meaningless.

Let me spell it out for you.  Michael states I agree with Junio.  There
are good technical arguments for and against moving git-remote-hg out of
contrib.  Since there are arguments for both sides, the decision boils
down to a judgment call.  Michael states that he condones the choice
Junio made, based on the reasoning he gave.

Does that mean that he examined the choice with equal detail and
remembers every detail?  No.  In such a decision, both technical
expertise as well as trust based on a past record factor in.

  The quality of the subjproject has not been called into question,
  stop taiting the discussion with red herrings.
 
 On the contrary.  I just called the quality of the subproject into
 question, and I stated exactly which aspects of its quality I find to
 be inadequate in the text that you omitted from your response:

 I'll wait until somebody else calls into question the quality.
 Preferably somebody who backs up his claims with evidence.

The evidence for the toxicity of dealing with subprojects maintained by
you is all over the mailing list.

You are obviously blind to it yourself.  Feel free to print out a few
salient threads where you argue in favor of your points and ask someone
you trust about his impression about how you come across.

  Let's see how sincere you are in your sentiment. I'll reply to you
  personally about the points that I consider to be red herrings and
  ad hominem attacks so we don't taint the dicussion. If you don't
  reply I'll know you were not being sincere.
 
 Jumping at your every demand is not a prerequisite for being sincere.

 I spent a lot of time writing that mail. Not sincere it is then.

That kind of exchange is what you should show some of your personal
friends and ask them whether it will likely lead to the desired
understanding and ultimately reaction in the reader.

Because that is what communication is about.  Of course, one can try
bypassing understanding and directly aim for a particular reaction: that
is being manipulative.  You are hardly in danger of being manipulative:
that would require a basic understanding of people.  So all you can
really aim for is understanding: presenting your best case.  Forget
about rhetorics and the like: you suck at them, and a technical
audience is easily annoyed by them even when they are employed well.

And if a calm presentation does not lead others to the same conclusion
that you would draw, deal with the consequences.  Throwing tantrums will
only bias people against you when you have the next case to present.

-- 
David Kastrup
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Michael Haggerty
On 05/12/2014 02:29 PM, Felipe Contreras wrote:
 Michael Haggerty wrote:
 [...]
 2. Moving git-remote-hg into the core would require you to continue your
presence on the Git mailing list.
 
 That is another red herring. Moving them back to the contrib/ area which
 is what Junio proposed would also require my presence on the list. Is
 that what you want?

No, actually my preference is that git-remote-hg be separated from the
Git project altogether, for the reasons that I stated earlier.

Michael

-- 
Michael Haggerty
mhag...@alum.mit.edu
http://softwareswirl.blogspot.com/
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Paolo Ciarrocchi
On Mon, May 12, 2014 at 2:48 PM, Felipe Contreras
felipe.contre...@gmail.com wrote:

 Paolo Ciarrocchi wrote:
  On Mon, May 12, 2014 at 11:42 AM, Michael Haggerty 
  mhag...@alum.mit.eduwrote:
 

  While I agree with you the this project is managed in a bit conservative
  way

 Only a bit? I don't think I've been involed in a more conservative open
 source project.

  you should really improve how you communicate with other developers,
  it's such a pity your contributions are some times not included in
  git.git just because of your attitude.

 But that's a theory. You don't *know* that they would have been included
 had I used a different attitude.

Well, you could at least try to act and communicate differently.

 In fact, people have contacted me privately saying similar things, and
 I'll give you the same challenge I gave them. If you think a different
 attitude would get my patches in, how about *you* write the commit
 messages and the discussions for one of my stuck patch series. I'll send
 the mails as if I had written the content.

No, sorry but I'm NOT interested in lying to git community.

Ciao,
-- 
Paolo
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Hello

2014-05-12 Thread johnson.johnson7777
Hello
My name is joyJohnson
i saw your profile today and became
 interested in you,i will also like to know you the more,and i want you to 
send an email to my email address so that i can give you my picture for you to 
know whom i am.Here is my email address   (joyjohnson...@yahoo.com)
I believe we can move from here , I  am waiting for your mail to my email 
address above.joy
(Remeber the distance or colour
 does not matter but love matters alot in life)
please contact me here (joyjohnson...@yahoo.com


--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Error using git-remote-hg

2014-05-12 Thread Charles Brossollet
Hello,

I have the following error while pushing to an hg repository though the remote 
translator:

$ git remote -v
origin  hg::ssh://charles...@hg.code.sf.net/u/charlesb05/lapdogapi (push)
origin  hg::ssh://charles...@hg.code.sf.net/u/charlesb05/lapdogapi (fetch)

$ git push origin
Password:
searching for changes
no changes found
searching for changes
Traceback (most recent call last):
  File /usr/local/bin/git-remote-hg, line 1254, in module
sys.exit(main(sys.argv))
  File /usr/local/bin/git-remote-hg, line 1238, in main
do_export(parser)
  File /usr/local/bin/git-remote-hg, line 1119, in do_export
if not push(parser.repo, peer, parsed_refs, p_revs):
  File /usr/local/bin/git-remote-hg, line 1007, in push
ret = push_unsafe(repo, remote, parsed_refs, p_revs)
  File /usr/local/bin/git-remote-hg, line 984, in push_unsafe
cg = repo.getbundle('push', heads=list(p_revs), common=common)
  File /usr/local/lib/python2.7/site-packages/mercurial/repoview.py, line 
217, in __getattr__
return getattr(self._unfilteredrepo, attr)
AttributeError: 'localrepository' object has no attribute 'getbundle'

I'm using git 1.9.3 on Mac OS X 10.9.2, with hg 3.0 installed with brew.

It used to work before, on this same repository, since then git and hg were 
both upgraded.

Thanks for help,
—- 
Charles

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Stefan Beller
2014-05-12 15:45 GMT+02:00 Paolo Ciarrocchi paolo.ciarroc...@gmail.com:


 No, sorry but I'm NOT interested in lying to git community.


It's not lying. See the Helped-By:  lines in git.git commits.
Often the help was formulating a correct and easy-to-understand
commit message.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Paolo Ciarrocchi wrote:
 On Mon, May 12, 2014 at 2:48 PM, Felipe Contreras
 felipe.contre...@gmail.com wrote:
  Paolo Ciarrocchi wrote:
   On Mon, May 12, 2014 at 11:42 AM, Michael Haggerty 
   mhag...@alum.mit.eduwrote:
 
   While I agree with you the this project is managed in a bit conservative
   way
 
  Only a bit? I don't think I've been involed in a more conservative open
  source project.
 
   you should really improve how you communicate with other developers,
   it's such a pity your contributions are some times not included in
   git.git just because of your attitude.
 
  But that's a theory. You don't *know* that they would have been included
  had I used a different attitude.
 
 Well, you could at least try to act and communicate differently.

I have, it doesn't make a difference.

  In fact, people have contacted me privately saying similar things, and
  I'll give you the same challenge I gave them. If you think a different
  attitude would get my patches in, how about *you* write the commit
  messages and the discussions for one of my stuck patch series. I'll send
  the mails as if I had written the content.
 
 No, sorry but I'm NOT interested in lying to git community.

Yeah, that's what I thought. I know what the result of such experiment
would be though.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Michael Haggerty wrote:
 On 05/12/2014 02:29 PM, Felipe Contreras wrote:
  Michael Haggerty wrote:
  [...]
  2. Moving git-remote-hg into the core would require you to continue your
 presence on the Git mailing list.
  
  That is another red herring. Moving them back to the contrib/ area which
  is what Junio proposed would also require my presence on the list. Is
  that what you want?
 
 No, actually my preference is that git-remote-hg be separated from the
 Git project altogether, for the reasons that I stated earlier.

Exactly. So your point 2. is completely irrelevant to the contrb/ vs.
core debate.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: GIT, libcurl and GSS-Negotiate

2014-05-12 Thread Carlos Martín Nieto
On Sat, 2014-05-10 at 21:01 +, brian m. carlson wrote:
 On Mon, May 05, 2014 at 12:21:33PM +0200, Ivo Bellin Salarin wrote:
  Well, I'm on Windows.
  using `git version 1.9.2.msysgit.0`.
  
  You can find all the exchanges, recorded with wireshark, of the
  following usecases:
  * git vanilla (not working),
  * VisualStudio2013 with libgit (working)
  * curl (--ntlm, working)
  * curl (--negotiate, not working)
 
 Okay, so what it looks like is that for some reason, the server and
 libcurl refuse to connect with Negotiate authentication.  git uses
 CURLAUTH_ANY, and libcurl picks the best choice: Negotiate.  The
 difference between your setup and mine is that I'm using Negotiate with
 Kerberos 5, and you're using Negotiate with NTLM.
 
 What it looks like is happening is that git is offering Negotiate data,
 and then your server is responding with a 401 Unauthorized.  libgit2
 (presumably using WinHTTP) continues in this case, retrying with a
 longer set of credential containing more data, but git gives up.

While libgit2 does use WinHTTP by default on Windows, Visual Studio
overrides this and uses their own HTTP transport (which makes the .NET
stack to handle it) because of the way the prefer to do things, with
just the one persistent connection to TFS.

But details aside, the code Visual Studio uses to do authentication has
nothing to do with any of the others.

   cmn


--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] inline constant return from error() function

2014-05-12 Thread Jeff King
On Sun, May 11, 2014 at 10:22:03AM -0700, Junio C Hamano wrote:

 The alternative you mentioned up-thread ... to write out return
 error(...)  as error(...); return -1. In some ways that is more
 readable, though it is more verbose... has one more downside you
 did not mention, and the approach to encapsulate it inside error()
 will not have it: new call-sites to error() do not have to worry
 about the issue with this approach.
 
 Until it breaks, that is.  But that goes without saying with the
 it's something we can count on pre-condition in place ;-).

Yeah, I agree with this thinking. I'd rather not do something that
impacts each callsite until we have exhausted other options that hide
the complexity in the definition.

-Peff
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] git-add--interactive: Preserve diff heading when splitting hunks

2014-05-12 Thread Jeff King
On Sun, May 11, 2014 at 04:09:56PM +, Ævar Arnfjörð Bjarmason wrote:

 Change the display of hunks in hunk splitting mode to preserve the diff
 heading, which hasn't been done ever since the hunk splitting was
 initially added in v1.4.4.2-270-g835b2ae.
 
 Splitting the first hunk of this patch will now result in:
 
 Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]? s
 Split into 2 hunks.
 @@ -792,7 +792,7 @@ sub hunk_splittable {
 [...]
 
 Instead of:
 
 Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]? s
 Split into 2 hunks.
 @@ -792,7 +792,7 @@
 [...]
 
 This makes it easier to use the tool when you're splitting some giant
 hunk and can't remember in which function you are anymore.

This makes a lot of sense to me. I did notice two interesting quirks,
one of which might be worth addressing.

One, there is a slightly funny artifact in that the hunk header comes
from the top of the context line, and that top is a different position
for each of the split hunks. So in a file like:

  header_A
  content
  header_B
  one
  two
  three
  four

you might have a diff like:

  @@ ... @@ header_A
   header_B
   one
   two
  +new line 1
   three
  +new line 2
   four

The hunk header for new line 1 is A, because B itself is part of
the context. But the hunk header for new line 2, if it were an
independent hunk, would be B. We print A because we copy it from the
original hunk.

It probably won't matter much in practice (and I can even see an
argument that A is the right answer). And figuring out B here
would be prohibitively difficult, I would think, as it would require
applying the funcname rules internal to git-diff to a hunk that git-diff
itself never actually sees.

Since the output from your patch is strictly better than what we saw
before, I think there is no reason we cannot leave such an improvement
to later (or never).

 The diff is somewhat larger than I initially expected because in order
 to display the headings in the same color scheme as the output from
 git-diff(1) itself I had to split up the code that would previously
 color diff output that previously consisted entirely of the fraginfo,
 but now consists of the fraginfo and the diff heading (the latter of
 which isn't colored).

The func heading is not colored by default, but you can configure it to
be so with color.diff.func. I double-checked the behavior with your
patch: you end up with the uncolored header in the split hunks, because
it is parsed from the uncolored line. Which is not bad, but I think we
can trivially do better, just by adding back in the color as we do with
the fraginfo.

Like:

diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index ed1e564..ac5763d 100755
--- a/git-add--interactive.perl
+++ b/git-add--interactive.perl
@@ -29,6 +29,10 @@ my ($fraginfo_color) =
$diff_use_color ? (
$repo-get_color('color.diff.frag', 'cyan'),
) : ();
+my ($funcname_color) =
+   $diff_use_color ? (
+   $repo-get_color('color.diff.func', ''),
+   ) : ();
 my ($diff_plain_color) =
$diff_use_color ? (
$repo-get_color('color.diff.plain', ''),
@@ -902,7 +906,7 @@ sub split_hunk {
unshift @{$hunk-{DISPLAY}}, join(
,
$diff_use_color ? colored($fraginfo_color, $fraginfo) : 
$fraginfo,
-   $heading,
+   $diff_use_color ? colored($funcname_color, $heading) : 
$heading,
\n
);
}

I didn't prepare a commit message because I think it should probably
just be squashed in.

-Peff
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] inline constant return from error() function

2014-05-12 Thread Jonathan Nieder
Hi,

Jeff King wrote:
 On Mon, May 05, 2014 at 05:29:38PM -0400, Jeff King wrote:

 I cannot think of any other way to make the compiler aware of the
 constant value, but perhaps somebody else is more clever than I am.

 This came to me in a dream, and seems to work.

Clever. :)  Thanks for thinking it up.

[...]
 --- a/git-compat-util.h
 +++ b/git-compat-util.h
 @@ -331,7 +331,11 @@ extern void warning(const char *err, ...) 
 __attribute__((format (printf, 1, 2)))
   * using the function as usual.
   */
  #if defined(__GNUC__)  ! defined(__clang__)
 -#define error(...) (error(__VA_ARGS__), -1)
 +static inline int const_error(void)
 +{
 + return -1;
 +}
 +#define error(...) (error(__VA_ARGS__), const_error())

I wish we could just make error() an inline function that calls some
print_error() helper, but I don't believe all compilers used to build
git are smart enough to inline uses of varargs.  So this looks like
the right thing to do.

I kind of wish we weren't in so much of an arms race with static
analyzers.  Is there some standard way to submit our code as an idiom
that should continue not to produce warnings to be included in a
testsuite and prevent problems in the future?

Thanks,
Jonathan
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] Make it possible to update git_wcwidth()

2014-05-12 Thread Junio C Hamano
Torsten Bögershausen tbo...@web.de writes:

 The function git_wcwidth() returns for a given unicode code point the
 width on the display:
 -1 for control characters,
  0 for combining or other non-visible code points
  1 for e.g. ASCII
  2 for double-width code points.

 This table had been originally been extracted for one Unicode version,
 probably 3.2.

 Make it possible to update the to a later version of Unicode:

 Factor out the table from utf8.c into unicode_width.h and
 add the script update_unicode.sh to update the table based on the latest
 Unicode specification files.

 Thanks to
 Peter Krefting pe...@softwolves.pp.se and
 Kevin Bracey ke...@bracey.fi
 for helping with their Unicode knowledge

 Signed-off-by: Torsten Bögershausen tbo...@web.de
 ---

I would say this is a good idea, but a few nitpicks.

 diff --git a/unicode_width.h b/unicode_width.h
 new file mode 100644
 index 000..4db7803
 --- /dev/null
 +++ b/unicode_width.h
 @@ -0,0 +1,288 @@

Please update the script (and the resulting file) to caution against
misuse/mismanagement of this file by adding a comment to at least
state:

 - This is a generated file and you are not supposed to modify it; and

 - This is to be included only once from one place in the code and
   that is why this does not use the usual #ifndef X/#define X/#endif
   double-inclusion guards.

An obvious and viable alternative to the second would be to do the
usual double-inclusion guard.  I do not have much preference either
way.

 +static const struct interval zero_width[] = {
 ...
 +};
 +static const struct interval double_width[] = {
 ...
 +};
 diff --git a/update_unicode.sh b/update_unicode.sh
 new file mode 100755
 index 000..000b937
 --- /dev/null
 +++ b/update_unicode.sh
 @@ -0,0 +1,37 @@
 +#!/bin/sh
 +#See http://www.unicode.org/reports/tr44/
 +#
 +#Me Enclosing_Mark  an enclosing combining mark
 +#Mn Nonspacing_Mark a nonspacing combining mark (zero advance width)
 +#Cf Format  a format control character

Please have a SP after # in these comments to make them readable?

 +#
 +UNICODEWIDTH_H=../unicode_width.h
 +if ! test -d unicode; then
 + mkdir unicode
 +fi 

Style:

if ! test -d unicode
then
...
fi

 +( cd unicode 
 + if ! test -f UnicodeData.txt; then
 + wget 
 http://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt
 + fi 
 + if ! test -f EastAsianWidth.txt; then
 + wget 
 http://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt
 + fi 
 + if ! test -d uniset; then
 + git clone https://github.com/depp/uniset.git
 + fi 
 + (
 + cd uniset 
 + if ! test -x uniset; then
 + autoreconf -i 
 + ./configure --enable-warnings=-Werror CFLAGS='-O0 -ggdb'

What are these -O0 -ggdb about?

 + fi 
 + make
 + ) 
 + echo static const struct interval zero_width[] = { $UNICODEWIDTH_H 
 + UNICODE_DIR=. ./uniset/uniset --32 cat:Me,Mn,Cf + U+1160..U+11FF - 
 U+00AD |
 + grep -v plane $UNICODEWIDTH_H 
 + echo }; $UNICODEWIDTH_H 
 + echo static const struct interval double_width[] = { 
 $UNICODEWIDTH_H 
 + UNICODE_DIR=. ./uniset/uniset --32 eaw:F,W $UNICODEWIDTH_H 
 + echo }; $UNICODEWIDTH_H
 +)
 @@ -147,7 +90,7 @@ static int git_wcwidth(ucs_char_t ch)
   return -1;
  
   /* binary search in table of non-spacing characters */
 - if (bisearch(ch, combining, sizeof(combining)
 + if (bisearch(ch, zero_width, sizeof(zero_width)
   / sizeof(struct interval) - 1))

To my eyes, that line looks folded at a funny place.  I think it is
more conventional to fold after the operator, i.e.

if (bisearch(ch, zero_width, sizeof(zero_width) /
sizeof(struct interval) - 1))

but

if (bisearch(ch, zero_width,
 sizeof(zero_width) / sizeof(struct interval) - 1))

may probably be a lot more logical and readable.  Maybe it is just
me.

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [BUGFIX/RFC] git-show: fix 'git show -s' to not add extra terminator after merge commit

2014-05-12 Thread Junio C Hamano
Max Kirillov m...@max630.net writes:

 When git show -s is called for merge commit it prints extra newline
 between any merge commit and the next one. This looks especially ugly for
 --oneline and other single-line formats. Looks very much like a bug.

Yeah, it is not limited to one-line formats.  For example:

$ git show -s v2.0.0-rc3^0 v2.0.0-rc3^1

ends with an extra blank line before you see your prompt, but if you
swap the revs:

$ git show -s v2.0.0-rc3^1 v2.0.0-rc3^0

you do not get the extra blank line.  Instead, you have an extra
blank in between.  And I agree that these extra blank lines look
very much like a bug.

 This actually has broken some number of existing tests
 (their fix not included), and might break some existing
 scripts which already expect this extra newline.

 So, is it yet not too late to fix this?

I would prefer to see it fixed eventually.

I haven't checked if the new extra check uses the right condition
yet, but from a cursory look and with a few examples I tried
manually, the version with your change seems to behave a lot more
sensibly.

A good way to double-check may be to see the fixes to the tests to
correct their wrong expectations, and if the updated expectation is
sensible.  That way, we will find if the observations we made (your
problem description and my two examples above, and a few examples I
tried manually) covered all what matters, or if there are cases
where they indeed were expecting some sensible results which this
change would break that we missed.  Offhand, I doubt we would find
any case where these extra blank lines are sensible expectations,
though.

  combine-diff.c  | 2 +-
  t/t7007-show.sh | 8 ++--
  2 files changed, 7 insertions(+), 3 deletions(-)

 diff --git a/combine-diff.c b/combine-diff.c
 index 3b92c448..d2924de 100644
 --- a/combine-diff.c
 +++ b/combine-diff.c
 @@ -1331,7 +1331,7 @@ void diff_tree_combined(const unsigned char *sha1,
   if (show_log_first  i == 0) {
   show_log(rev);
  
 - if (rev-verbose_header  opt-output_format)
 + if (rev-verbose_header  opt-output_format  
 opt-output_format != DIFF_FORMAT_NO_OUTPUT)

Please wrap this long line, perhaps like:

if (rev-verbose_header  opt-output_format 
opt-output_format != DIFF_FORMAT_NO_OUTPUT)


   printf(%s%c, diff_line_prefix(opt),
  opt-line_termination);
   }
 diff --git a/t/t7007-show.sh b/t/t7007-show.sh
 index e41fa00..d76c7db 100755
 --- a/t/t7007-show.sh
 +++ b/t/t7007-show.sh
 @@ -25,6 +25,7 @@ test_expect_success 'set up a bit of history' '
   git checkout -b side HEAD^^ 
   test_commit side2 
   test_commit side3
 + test_merge merge main3
  '
  
  test_expect_success 'showing two commits' '
 @@ -109,8 +110,11 @@ test_expect_success 'showing range' '
  '
  
  test_expect_success '-s suppresses diff' '
 - echo main3 expect 
 - git show -s --format=%s main3 actual 
 + cat expect -EOF 
 + merge
 + main3
 + EOF

Please make it a habit to quote the EOF marker when you are not
placing things that require variable substitutions, to tell the
readers that they can coast their eyes over the here-document
without having to worry about them.  For a short here-document
like this, it does not matter, but these things have a habit of
getting imitated without thinking by others, and it is better to be
defensive and consistent.  I.e.

cat expect -\EOF 
merge
main3
EOF

 + git show -s --format=%s merge main3 actual 
   test_cmp expect actual
  '
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] Make it possible to update git_wcwidth()

2014-05-12 Thread Junio C Hamano
Peter Krefting pe...@softwolves.pp.se writes:

 Torsten Bögershausen:

 The function git_wcwidth() returns for a given unicode code point the
 width on the display:
 -1 for control characters,
 0 for combining or other non-visible code points
 1 for e.g. ASCII
 2 for double-width code points.

 This all looks sane, but the problem is that this is also
 context-dependent since there are a lot of characters with ambiguous
 widths, i.e., characters that are double width for CJK locales (and
 fonts), but single width for others. This includes Greek and
 Cyrillic characters, which are encoded using the double-byte parts of
 the CJK DBCS encodings.

 I'm not quite sure how much impact this would have on day-to-day Git
 operation in a CJK locale, however, as I guess they would mostly
 encounter texts in their own language (which would mostly be double
 width) or English (which would be unambiguously single width).

 Anyone on the list running Git in a CJK locale that would like to
 weigh in here?

The issue does appear in the real life.  A solution I've seen used
in a terminaul emulator program was to give the user a choice to say
I want ambiguous ones to be treated as double (or single).  As a
J-locale user, I naturally set the configuration to double while
using that program (I no longer do).

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] inline constant return from error() function

2014-05-12 Thread Jeff King
On Mon, May 12, 2014 at 11:44:26AM -0700, Jonathan Nieder wrote:

  --- a/git-compat-util.h
  +++ b/git-compat-util.h
  @@ -331,7 +331,11 @@ extern void warning(const char *err, ...) 
  __attribute__((format (printf, 1, 2)))
* using the function as usual.
*/
   #if defined(__GNUC__)  ! defined(__clang__)
  -#define error(...) (error(__VA_ARGS__), -1)
  +static inline int const_error(void)
  +{
  +   return -1;
  +}
  +#define error(...) (error(__VA_ARGS__), const_error())
 
 I wish we could just make error() an inline function that calls some
 print_error() helper, but I don't believe all compilers used to build
 git are smart enough to inline uses of varargs.  So this looks like
 the right thing to do.

Not just not all compilers, but not even gcc. If you declare it
always_inline, gcc will even complain you can't do that, it has
varargs.

For my curiosity, is there any compiler which _does_ inline varargs
calls? Clang would be the obvious guess.

 I kind of wish we weren't in so much of an arms race with static
 analyzers.  Is there some standard way to submit our code as an idiom
 that should continue not to produce warnings to be included in a
 testsuite and prevent problems in the future?

I agree the arms race is frustrating, but I think the compiler is being
completely reasonable in this case. It has flagged code where it knows
a variable may be uninitialized depending on the return value from
error(). The only reason I as a human know it's a false positive is that
I know error() will always return -1. So it's not an idiom here, so much
as letting the compiler know everything we know.

It would just be nice if there was an easier way to do it.

I do think giving the compiler that information is nicer than an
attribute saying trust me, it's initialized. The constant return not
only silences the warnings, but it may actually let the compiler produce
better code (both in these cases, but in the hundreds of other spots
that call error()).

-Peff
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Error using git-remote-hg

2014-05-12 Thread Torsten Bögershausen
 I'm using git 1.9.3 on Mac OS X 10.9.2, with hg 3.0 installed with brew.
 
 It used to work before, on this same repository, since then git and hg were 
 both upgraded.
In short: The remote helper of Git 1.9.3 is not compatible with hg 3.0
You can eiher downgrade hg, or rebuild Git and cherry-pick this commit:

commit 58aee0864adeeb5363f2a06728596f9c9315811f
Author: Felipe Contreras felipe.contre...@gmail.com
Date:   Sat May 3 21:16:54 2014 -0500

remote-hg: add support for hg v3.0

HTH
/Torsten





--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Bug - Git reset --quiet not quiet

2014-05-12 Thread Thomas-Louis Laforest
Good afternoon,

When running this command on Git for Windows (version 1.9.2-preview20140411)
git reset --quiet --hard with one file having read/write lock git ask this 
question : 
Unlink of file '' failed. Should I try again? (y/n)

I will have expected the command --quiet to remove the question and auto-answer 
no.
This broke an automated script we use.

Good day

Thomas-Louis Laforest, ing. jr, Jr. Eng.
Chargé de projet, Project Leader
solutions intégrées  |  integrated solutions
T 819 542-5600  x3106
F 819 845-5600
tllafor...@arbault.ca
The information contained herein is of private and confidential nature. It can 
be used only by the above-mentioned recipients. Any other person who would take 
note of it is advised that it is strictly forbidden for him to reveal the 
information, to distribute it or to copy it. If this communication were 
transmitted to you by mistake, warn us immediately by telephone or email, and 
erase the original, without taking a copy, revealing the content nor taking 
some measures based on it.
Les renseignements contenus dans les présentes sont de nature privée et 
confidentielle. Ils ne peuvent être utilisés que par le ou les destinataires 
susmentionnés. Toute autre personne qui en prendrait connaissance est priée de 
noter qu'il lui est strictement interdit de les divulguer, de les distribuer ou 
de les copier. Si cette communication vous a été transmise par mégarde, 
veuillez nous en aviser immédiatement par téléphone ou par courriel, et effacer 
l'original, sans en tirer de copie, en dévoiler le contenu ni prendre quelque 
mesure fondée sur celui-ci.

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] git-add--interactive: Preserve diff heading when splitting hunks

2014-05-12 Thread Ævar Arnfjörð Bjarmason
On Mon, May 12, 2014 at 8:39 PM, Jeff King p...@peff.net wrote:
 On Sun, May 11, 2014 at 04:09:56PM +, Ævar Arnfjörð Bjarmason wrote:

 Change the display of hunks in hunk splitting mode to preserve the diff
 heading, which hasn't been done ever since the hunk splitting was
 initially added in v1.4.4.2-270-g835b2ae.

 Splitting the first hunk of this patch will now result in:

 Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]? s
 Split into 2 hunks.
 @@ -792,7 +792,7 @@ sub hunk_splittable {
 [...]

 Instead of:

 Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]? s
 Split into 2 hunks.
 @@ -792,7 +792,7 @@
 [...]

 This makes it easier to use the tool when you're splitting some giant
 hunk and can't remember in which function you are anymore.

 This makes a lot of sense to me. I did notice two interesting quirks,
 one of which might be worth addressing.

 One, there is a slightly funny artifact in that the hunk header comes
 from the top of the context line, and that top is a different position
 for each of the split hunks. So in a file like:

   header_A
   content
   header_B
   one
   two
   three
   four

 you might have a diff like:

   @@ ... @@ header_A
header_B
one
two
   +new line 1
three
   +new line 2
four

 The hunk header for new line 1 is A, because B itself is part of
 the context. But the hunk header for new line 2, if it were an
 independent hunk, would be B. We print A because we copy it from the
 original hunk.

 It probably won't matter much in practice (and I can even see an
 argument that A is the right answer). And figuring out B here
 would be prohibitively difficult, I would think, as it would require
 applying the funcname rules internal to git-diff to a hunk that git-diff
 itself never actually sees.

 Since the output from your patch is strictly better than what we saw
 before, I think there is no reason we cannot leave such an improvement
 to later (or never).

Good suggestion, but tricky as you point out. Another thing I've
wanted many times is to make it smart enough that when you edit code
like:

  A()
  B();

And change it to:

  X();

  Y();

The change from A-X and B-Y may be completely unrelated and just
made in code where the author didn't add whitespace between unrelated
statements.

But because you change all the lines the tool can't split them up, it
could try harder and split hunks like that if you add a whitespace
boundary, or just go all the way down to adding/removing individual
lines, so you wouldn't have to fall down to edit mode and do so
manually.


 The diff is somewhat larger than I initially expected because in order
 to display the headings in the same color scheme as the output from
 git-diff(1) itself I had to split up the code that would previously
 color diff output that previously consisted entirely of the fraginfo,
 but now consists of the fraginfo and the diff heading (the latter of
 which isn't colored).

 The func heading is not colored by default, but you can configure it to
 be so with color.diff.func. I double-checked the behavior with your
 patch: you end up with the uncolored header in the split hunks, because
 it is parsed from the uncolored line. Which is not bad, but I think we
 can trivially do better, just by adding back in the color as we do with
 the fraginfo.

 Like:

 diff --git a/git-add--interactive.perl b/git-add--interactive.perl
 index ed1e564..ac5763d 100755
 --- a/git-add--interactive.perl
 +++ b/git-add--interactive.perl
 @@ -29,6 +29,10 @@ my ($fraginfo_color) =
 $diff_use_color ? (
 $repo-get_color('color.diff.frag', 'cyan'),
 ) : ();
 +my ($funcname_color) =
 +   $diff_use_color ? (
 +   $repo-get_color('color.diff.func', ''),
 +   ) : ();
  my ($diff_plain_color) =
 $diff_use_color ? (
 $repo-get_color('color.diff.plain', ''),
 @@ -902,7 +906,7 @@ sub split_hunk {
 unshift @{$hunk-{DISPLAY}}, join(
 ,
 $diff_use_color ? colored($fraginfo_color, $fraginfo) 
 : $fraginfo,
 -   $heading,
 +   $diff_use_color ? colored($funcname_color, $heading) 
 : $heading,
 \n
 );
 }

 I didn't prepare a commit message because I think it should probably
 just be squashed in.

Well spotted, indeed, that should be squashed in.

On a related note I thought by doing color.ui=auto I was turning on
all the colors, it would be nice if there was a built-in colorscheme
that added more coloring to items like these across our tools, it's
useful to have the hunk headers colored differently so they stand out
more.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Error using git-remote-hg

2014-05-12 Thread Felipe Contreras
Torsten Bögershausen wrote:
  I'm using git 1.9.3 on Mac OS X 10.9.2, with hg 3.0 installed with brew.
  
  It used to work before, on this same repository, since then git and hg were 
  both upgraded.
 In short: The remote helper of Git 1.9.3 is not compatible with hg 3.0
 You can eiher downgrade hg, or rebuild Git and cherry-pick this commit:

No need to rebuild Git.

You can also use the latest version:
https://github.com/felipec/git-remote-hg

-- 
Felipe Contreras--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/4] remote-hg: more improvements

2014-05-12 Thread Junio C Hamano
Philippe Vaucher philippe.vauc...@gmail.com writes:

 It is *way* beyond the quality of any other tool in 'contrib/' and even
 some tools in the core, like 'git-request-pull' (which has known bugs),
 and probably even 'git-pt'.

 Junio, can you comment on this? I understand this probably doesn't
 really affect the issue at hand, but it'd help clarify if it's ever
 possible to move out of contrib/ nowadays.

I was originally led to believe that its code quality was good
enough, and that was why I merged the bottom three patches of the
series even down to 'next' in the first place.  But after seeing the
Of course response that led to [*1*], which made me recall many
patch-review interactions with him, I have started to have doubts.

The code quality of Git that many projects have come to trust their
code with is much more than just the code at each moment keeps
working for the users as long as the original author is around.
The maintainer of a port to the platform X may lose access to the
platform after switching jobs, the maintainer of a bridge to the
foreign system Y may stop needing to talk to the foreign system
after completing the switch to Git.  Anybody can be hit by a bus,
get sick, or simply lose interest in his past creations.

By reading git log contrib/remote-helpers and comparing it with
the logs for the rest of the system, you would realize that the
former would not lead to a quality discussion similar to the one
that led to [*2*], which was only possible because the change was
adequately described to allow anybody to understand the original
issue the change was meant to solve.  The commit that made the
original change made it easy to ask a critical question: You are
improving B but at the same time breaking A.  Can we do better to
help both A and B?  And it allowed us to move forward without
having to rob Peter to pay Paul.

Granted, these contrib/ patches were applied with the understanding
that contrib/ stuff can be substandard, because having anything is
often better than having nothing, and you cannot go back in time to
update the history to make these commits more useful to others who
will come later.  But I would be lying if I said that I would expect
that things will suddenly improve and that the codebase will be
maintained for the long haul in a healthy way the minute we move it
out of contrib/ to the core.  Especially after seeing [*1*], which
is just one of the examples that illustrate that there clearly is no
will to explain the changes to help others who come later to help
maintaining the code.  I'll take good care of the codebase, I've
spend the time to make it better, Me, me, me, is not what the
open source process is about.


[References]

*1* http://thread.gmane.org/gmane.comp.version-control.git/248063/focus=248341
*2* http://thread.gmane.org/gmane.comp.version-control.git/248075/focus=248204
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] git-add--interactive: Preserve diff heading when splitting hunks

2014-05-12 Thread Jeff King
On Mon, May 12, 2014 at 09:42:56PM +0200, Ævar Arnfjörð Bjarmason wrote:

 Good suggestion, but tricky as you point out. Another thing I've
 wanted many times is to make it smart enough that when you edit code
 like:
 
   A()
   B();
 
 And change it to:
 
   X();
 
   Y();
 
 The change from A-X and B-Y may be completely unrelated and just
 made in code where the author didn't add whitespace between unrelated
 statements.
 
 But because you change all the lines the tool can't split them up, it
 could try harder and split hunks like that if you add a whitespace
 boundary, or just go all the way down to adding/removing individual
 lines, so you wouldn't have to fall down to edit mode and do so
 manually.

Yeah, I frequently run into this, too, and have just gotten good at
editing the patch. :)

I think splitting line-by-line, as you suggest, would be more general.
However, working within a single cluster of lines is difficult (both
line-by-line and in your whitespace example), because you have to
correlate removed and added lines. E.g., the diff for your change above
might look like:

  @@ ... @@
   context
   -A();
   -B();
   +X();
   +
   +Y();
   more context

We would want to end up with three hunks:

  -A();
  +X();

  +

  -B();
  +Y();

but how do we know which preimage lines correspond with which postimage
lines? You can probably come up with heuristics for this case (e.g.,
introduced whitespace gets its own hunk, and then count postimage lines
from each end), but there are many harder cases.

  I didn't prepare a commit message because I think it should probably
  just be squashed in.
 
 Well spotted, indeed, that should be squashed in.

If you do (or Junio does), I think the commit message needs a slight
update.

 On a related note I thought by doing color.ui=auto I was turning on
 all the colors, it would be nice if there was a built-in colorscheme
 that added more coloring to items like these across our tools, it's
 useful to have the hunk headers colored differently so they stand out
 more.

I don't set color.diff.func myself, but having just looked at it when
playing with your patch, I think it looks nice (I did yellow).

I also set color.diff.meta to magenta, which I think makes the hunk
header stand out a bit more.

So yeah, I'd be fine with proposing changes to the default color scheme,
though I do not envy you the inevitable bikeshed war. :)

-Peff
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: GIT, libcurl and GSS-Negotiate

2014-05-12 Thread Jeff King
On Sat, May 10, 2014 at 09:01:32PM +, brian m. carlson wrote:

 What it looks like is happening is that git is offering Negotiate data,
 and then your server is responding with a 401 Unauthorized.  libgit2
 (presumably using WinHTTP) continues in this case, retrying with a
 longer set of credential containing more data, but git gives up.
 
 Both responses comply with RFC 2616, by my reading.  I guess there are a
 couple of choices here:
 
 * Make your web server happy with the data that it gets passed
   initially.
 * Make git understand that it really needs to try again with different
   credentials in this case (how to do that is unknown).

It should be pretty straightforward to loop again; http_request_reauth
just needs to turn into a for-loop on getting HTTP_REAUTH, rather than a
static two-tries (I even had a patch for this a while ago, but the
function has changed a bit in the interim).

The tricky part is figuring out when to return HTTP_NOAUTH (do not try
again, we failed) versus HTTP_REAUTH (get credentials and try again)
in handle_curl_result. Right now the decision is based on did we have a
username and password for this request? I'm not clear on what extra
bits would be needed to decide to continue in the case you guys are
discussing.

 * Provide some way of forcing git to use a particular authentication
   protocol.

Yeah, we just set CURLAUTH_ANY now, but it would be fairly trivial to
add http.authtype and http.proxyauthtype to map to CURLOPT_HTTPAUTH
and CURLOPT_PROXYAUTH.

-Peff
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/4] remote-hg: more improvements

2014-05-12 Thread Felipe Contreras
Junio C Hamano wrote:
 Philippe Vaucher philippe.vauc...@gmail.com writes:
 
  It is *way* beyond the quality of any other tool in 'contrib/' and even
  some tools in the core, like 'git-request-pull' (which has known bugs),
  and probably even 'git-pt'.
 
  Junio, can you comment on this? I understand this probably doesn't
  really affect the issue at hand, but it'd help clarify if it's ever
  possible to move out of contrib/ nowadays.
 
 I was originally led to believe that its code quality was good
 enough, and that was why I merged the bottom three patches of the
 series even down to 'next' in the first place.  But after seeing the
 Of course response that led to [*1*], which made me recall many
 patch-review interactions with him, I have started to have doubts.

This is bullshit, and a wrong direction fallacy.

Event #1:
Junio rejects the graduation
http://article.gmane.org/gmane.comp.version-control.git/248263

Event #2:
I give up improving remote helpers in git.git
http://thread.gmane.org/gmane.comp.version-control.git/248063/focus=248341

Junio is trying to make you believe that his decision (#1) was caused by
something I did (#2). Don't fall into that trap, #2 happened *AFTER* #1,
it can't possibly be the cause.

 But I would be lying if I said that I would expect
 that things will suddenly improve and that the codebase will be
 maintained for the long haul in a healthy way the minute we move it
 out of contrib/ to the core.  Especially after seeing [*1*]

[1] happened *AFTER* you made that stupid decision.

Don't make it look as if your decision was caused by [1], *YOU* caused
[1].

If you want to show that the quality of the commit messages or the code
caused that decision, show an issue in that respect that happened
*BEFORE* your decision.

It is very clear what is happening. Junio made a wrong decision based a
non-issue, then it became abudantly clear that there was no basis for
such decision, this why he never clarified the reasoning behind. Then,
*AFTER* I reacted to his decision he grabbed that opportunity to say
no, look, this _new_ thing Felipe is doing is the reason. Nice try.

If the behavior in [1] is the reason, the solution is easy; I'll revert
back to my old behavior where I explained everything in detail, and
updated the commit messages if something wasn't clear.

I would:

 1. Make sure the regression is fixed Git v2.0
 2. Send a clarified patch for the hg 3.0 compatibility
 3. Look for other important patches that might be missing and provide
all the details why they are important
 4. Rebase and clean the rest of the patches to make sure nothing is
missing

This is what I was going to do anyway *BEFORE* you made that decision.
And this commitment to quality is what I've been doing since day one.
*YOU* changed that by throwing away all my hard work.

If the issue was truly the behavior in [1], the outline above should get
rid of the (fake) problem you mention.

We make a compromise, you ignore this temporary bump (that *you*
caused), and I go back to high quality standards (which I was already
doing anyway before). The graduation process continues, and *IF* another
instance like [1] comes (it won't), then the graduation process is
canceled.

Ignoring temporary set-backs, finding common ground, and making an
agreement on future behavior is in the best interest of our users. Will
you do it?

 *1* http://thread.gmane.org/gmane.comp.version-control.git/248063/focus=248341

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/4] remote-hg: more improvements

2014-05-12 Thread Junio C Hamano
Felipe Contreras felipe.contre...@gmail.com writes:

 Junio C Hamano wrote:
 ...
 I was originally led to believe that its code quality was good
 enough, and that was why I merged the bottom three patches of the
 series even down to 'next' in the first place.  But after seeing the
 Of course response that led to [*1*], which made me recall many
 patch-review interactions with him, I have started to have doubts.

 This is bullshit, and a wrong direction fallacy.

 Event #1:
 Junio rejects the graduation
 http://article.gmane.org/gmane.comp.version-control.git/248263

 Event #2:
 I give up improving remote helpers in git.git
 http://thread.gmane.org/gmane.comp.version-control.git/248063/focus=248341

 Junio is trying to make you believe that his decision (#1) was caused by
 something I did (#2). Don't fall into that trap, #2 happened *AFTER* #1,
 it can't possibly be the cause.

I think you misunderstood.

I never said that I do not want it to graduate up (out is an option)
based on code quality.  In fact, I do not think anybody discussed
about code quality until this morning.

But because I was asked, I thought about it, and then answered
honestly.  I do not know what a trap you perceive is about, and I am
not interested in your responses.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Git abuses qt4-ssh-askpass

2014-05-12 Thread Jeff King
On Sat, May 10, 2014 at 10:41:28AM +0200, Chris “Kwpolska” Warrick wrote:

 when I’m using the HTTPS protocol to access repositories, a window
 from /usr/bin/qt4-ssh-askpass comes up.  It asks for my “SSH pass
 phrase”, twice.  Sadly, it’s wrong.  The actual things it wants is the
 username in the first case, and the password used to access the remote
 repository (eg. my GitHub password) in the second question.  This is a
 bug, and very misleading behavior.

If you have GIT_ASKPASS or SSH_ASKPASS set and git needs to prompt for a
username or password, it will call that program rather than prompting on
the terminal. It does pass a meaningful label to the askpass program,
but it sounds like your askpass program does not actually display it.

E.g., try setting GIT_TRACE=1. I get:

  $ GIT_TRACE=1 SSH_ASKPASS=ssh-askpass-fullscreen git fetch
  trace: built-in: git 'fetch'
  trace: run_command: 'git-remote-https' 'origin' 'https://github.com/peff/test'
  trace: run_command: 'ssh-askpass-fullscreen' 'Username for 
'\''https://github.com'\'': '
  trace: run_command: 'ssh-askpass-fullscreen' 'Password for 
'\''https://p...@github.com'\'': '

and the askpass program shows me those prompts. You may want to file a
bug report with qt4-ssh-askpass, as most other askpass programs
(including the original ssh-askpass that comes with ssh) respects the
prompt arguments.

That being said, we may be able to improve git, depending on what you
actually wanted to happen. For example, I don't think there is a way to
tell git even though I have SSH_ASKPASS set, still prompt me on the
terminal. It's been generally assumed that you would only set that
variable if you preferred an external prompt to a terminal prompt.

You may also want to look into git's credential support (see git help
credential), which can let you store the username and password in
secure system-provided storage (however from the qt4 above, I guess you
might be using KDE, and I do not know of a KDE Wallet helper; there is
one for GNOME keyring).

-Peff
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: What's cooking in git.git (Apr 2014, #08; Fri, 25)

2014-05-12 Thread Jeff King
On Fri, May 09, 2014 at 06:53:32PM +0200, Michael Haggerty wrote:

 On 04/26/2014 01:19 AM, Jeff King wrote:
  On Fri, Apr 25, 2014 at 03:50:26PM -0700, Junio C Hamano wrote:
  [...]
  * fc/publish-vs-upstream (2014-04-21) 8 commits
   - sha1_name: add support for @{publish} marks
   - sha1_name: simplify track finding
   - sha1_name: cleanup interpret_branch_name()
   - branch: display publish branch
   - push: add --set-publish option
   - branch: add --set-publish-to option
   - Add concept of 'publish' branch
   - t5516 (fetch-push): fix test restoration
 
   Add branch@{publish}; it seems that this is somewhat different from
   Ram and Peff started working on.  There were many discussion
   messages going back and forth but it does not appear that the
   design issues have been worked out among participants yet.
  
  [...]
  As for the patches themselves, I have not reviewed them carefully, and
  would prefer not to. As I mentioned before, though, I would prefer the
  short @{p} not be taken for @{publish} until it has proven itself.
 
 Is it too late and/or impossible to think of a different name for either
 push or publish so that their single-letter abbreviations don't
 coincide?

I don't think it is too late, as nothing has even made it to master
(and even once shipped, we can add an alias with a different name,
advertise that, and use its shorthand).

However, I am not sure if that is a good approach. New terms might not
collide in single-letters, but their full names might also not be as
descriptive. We'd have to judge actual proposals to see.

In addition, there was a discussion about having pull as an opposite
of push (which would make it an alias for upstream), that would also
collide. So there is a potential third name to deal with.

-Peff
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] git-add--interactive: Preserve diff heading when splitting hunks

2014-05-12 Thread Junio C Hamano
Jeff King p...@peff.net writes:

 One, there is a slightly funny artifact in that the hunk header comes
 from the top of the context line, and that top is a different position
 for each of the split hunks. So in a file like:

   header_A
   content
   header_B
   one
   two
   three
   four

 you might have a diff like:

   @@ ... @@ header_A
header_B
one
two
   +new line 1
three
   +new line 2
four

 The hunk header for new line 1 is A, because B itself is part of
 the context. But the hunk header for new line 2, if it were an
 independent hunk, would be B. We print A because we copy it from the
 original hunk.

 It probably won't matter much in practice (and I can even see an
 argument that A is the right answer).

I tend to agree with both points.

 And figuring out B here
 would be prohibitively difficult, I would think, as it would require
 applying the funcname rules internal to git-diff to a hunk that git-diff
 itself never actually sees.

You can actually apply a split hunk being proposed to a temporary
file and then ask git diff about it, so I do not think difficult
is too much of an issue, but I doubt we would want to see header_B,
exactly because when the user says Split this hunk, s/he is very
well aware that the second one is artificial and was split from the
original hunk whose header said header_A.

 Since the output from your patch is strictly better than what we saw
 before, I think there is no reason we cannot leave such an improvement
 to later (or never).

Yes.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] git-add--interactive: Preserve diff heading when splitting hunks

2014-05-12 Thread Jeff King
On Mon, May 12, 2014 at 02:07:15PM -0700, Junio C Hamano wrote:

  And figuring out B here
  would be prohibitively difficult, I would think, as it would require
  applying the funcname rules internal to git-diff to a hunk that git-diff
  itself never actually sees.
 
 You can actually apply a split hunk being proposed to a temporary
 file and then ask git diff about it, so I do not think difficult
 is too much of an issue,

True, I didn't think of that.

 but I doubt we would want to see header_B,
 exactly because when the user says Split this hunk, s/he is very
 well aware that the second one is artificial and was split from the
 original hunk whose header said header_A.

Right, that's along the lines of the you could make the argument I was
thinking of. Since you are thinking it, too, I'm definitely in favor of
stopping at Ævar's patch and seeing if anybody even notices or
complains.

Thanks.

-Peff
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/4] remote-hg: more improvements

2014-05-12 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  Junio C Hamano wrote:
  ...
  I was originally led to believe that its code quality was good
  enough, and that was why I merged the bottom three patches of the
  series even down to 'next' in the first place.  But after seeing the
  Of course response that led to [*1*], which made me recall many
  patch-review interactions with him, I have started to have doubts.
 
  This is bullshit, and a wrong direction fallacy.
 
  Event #1:
  Junio rejects the graduation
  http://article.gmane.org/gmane.comp.version-control.git/248263
 
  Event #2:
  I give up improving remote helpers in git.git
  http://thread.gmane.org/gmane.comp.version-control.git/248063/focus=248341
 
  Junio is trying to make you believe that his decision (#1) was caused by
  something I did (#2). Don't fall into that trap, #2 happened *AFTER* #1,
  it can't possibly be the cause.
 
 I think you misunderstood.
 
 I never said that I do not want it to graduate up (out is an option)
 based on code quality.

Fair enough, that was my understanding up until today.

 But because I was asked, I thought about it, and then answered
 honestly.  I do not know what a trap you perceive is about, and I am
 not interested in your responses.

Philippe Vaucher didn't ask about quality, he asked about moving out of
contrib.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/2] git-show: fix 'git show -s' to not add extra terminator after merge commit

2014-05-12 Thread Max Kirillov
When git show -s is called for merge commit it prints extra newline
after any merge commit and the next one. This looks especially ugly for
--oneline and other single-line formats. Looks very much like a bug.

The code in question exists since commit 3969cf7db1. Probably the
correct condition should be in fact
opt-output_format  DIFF_FORMAT_DIFFSTAT.

Test t7007-show.sh is also modified to cover this case.
---
 combine-diff.c  | 3 ++-
 t/t7007-show.sh | 8 ++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/combine-diff.c b/combine-diff.c
index 3b92c448..ff6ceaf 100644
--- a/combine-diff.c
+++ b/combine-diff.c
@@ -1331,7 +1331,8 @@ void diff_tree_combined(const unsigned char *sha1,
if (show_log_first  i == 0) {
show_log(rev);
 
-   if (rev-verbose_header  opt-output_format)
+   if (rev-verbose_header  opt-output_format 
+   opt-output_format != DIFF_FORMAT_NO_OUTPUT)
printf(%s%c, diff_line_prefix(opt),
   opt-line_termination);
}
diff --git a/t/t7007-show.sh b/t/t7007-show.sh
index e41fa00..de22812 100755
--- a/t/t7007-show.sh
+++ b/t/t7007-show.sh
@@ -25,6 +25,7 @@ test_expect_success 'set up a bit of history' '
git checkout -b side HEAD^^ 
test_commit side2 
test_commit side3
+   test_merge merge main3
 '
 
 test_expect_success 'showing two commits' '
@@ -109,8 +110,11 @@ test_expect_success 'showing range' '
 '
 
 test_expect_success '-s suppresses diff' '
-   echo main3 expect 
-   git show -s --format=%s main3 actual 
+   cat expect -\EOF 
+   merge
+   main3
+   EOF
+   git show -s --format=%s merge main3 actual 
test_cmp expect actual
 '
 
-- 
1.8.5.2.421.g4cdf8d0

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/2] fix 'git show -s' to not add extra terminator after merge commit

2014-05-12 Thread Max Kirillov
* fix the CC issues
* add fixes for existing tests

Max Kirillov (2):
  git-show: fix 'git show -s' to not add extra terminator after merge commit
  t: git-show: adapt tests to fixed 'git show'

 combine-diff.c|  3 ++-
 t/t1507-rev-parse-upstream.sh |  2 +-
 t/t7007-show.sh   |  8 ++--
 t/t7600-merge.sh  | 11 +--
 4 files changed, 14 insertions(+), 10 deletions(-)

-- 
1.8.5.2.421.g4cdf8d0

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/2] t: git-show: adapt tests to fixed 'git show'

2014-05-12 Thread Max Kirillov
'git show' used to print extra newline after merge commit, and it was
recorded so into the test reference data. Now when the behavior is
fixed, the tests should be updated.

Note that '--format=%s' works like '--pretty=tformat:%s'. This
is why non-merging cases pass, like t3505-cherry-pick-empty.sh
for example, though they look very similarly.
---
 t/t1507-rev-parse-upstream.sh |  2 +-
 t/t7600-merge.sh  | 11 +--
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/t/t1507-rev-parse-upstream.sh b/t/t1507-rev-parse-upstream.sh
index 2a19e79..672280b 100755
--- a/t/t1507-rev-parse-upstream.sh
+++ b/t/t1507-rev-parse-upstream.sh
@@ -100,7 +100,7 @@ test_expect_success 'merge my-side@{u} records the correct 
name' '
git branch -D new ;# can fail but is ok
git branch -t new my-side@{u} 
git merge -s ours new@{u} 
-   git show -s --pretty=format:%s actual 
+   git show -s --pretty=tformat:%s actual 
echo Merge remote-tracking branch ${sq}origin/side${sq} expect 
test_cmp expect actual
 )
diff --git a/t/t7600-merge.sh b/t/t7600-merge.sh
index 10aa028..b164621 100755
--- a/t/t7600-merge.sh
+++ b/t/t7600-merge.sh
@@ -57,11 +57,10 @@ create_merge_msgs () {
git log --no-merges ^HEAD c2 c3
} squash.1-5-9 
: msg.nologff 
-   echo msg.nolognoff 
+   : msg.nolognoff 
{
echo * tag 'c3': 
-   echo   commit 3 
-   echo
+   echo   commit 3
} msg.log
 }
 
@@ -71,7 +70,7 @@ verify_merge () {
git diff --exit-code 
if test -n $3
then
-   git show -s --pretty=format:%s HEAD msg.act 
+   git show -s --pretty=tformat:%s HEAD msg.act 
test_cmp $3 msg.act
fi
 }
@@ -620,10 +619,10 @@ test_expect_success 'merge early part of c2' '
git tag c6 
git branch -f c5-branch c5 
git merge c5-branch~1 
-   git show -s --pretty=format:%s HEAD actual.branch 
+   git show -s --pretty=tformat:%s HEAD actual.branch 
git reset --keep HEAD^ 
git merge c5~1 
-   git show -s --pretty=format:%s HEAD actual.tag 
+   git show -s --pretty=tformat:%s HEAD actual.tag 
test_cmp expected.branch actual.branch 
test_cmp expected.tag actual.tag
 '
-- 
1.8.5.2.421.g4cdf8d0

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 0/2] fix 'git show -s' to not add extra terminator after merge commit

2014-05-12 Thread Max Kirillov
Since v1:
* add Signed-off-by
* remove notion about '--format=%s' - found it in the
  documentation

Since RFC:
* fix the CC issues
* add fixes for existing tests

Max Kirillov (2):
  git-show: fix 'git show -s' to not add extra terminator after merge commit
  t: git-show: adapt tests to fixed 'git show'

 combine-diff.c|  3 ++-
 t/t1507-rev-parse-upstream.sh |  2 +-
 t/t7007-show.sh   |  8 ++--
 t/t7600-merge.sh  | 11 +--
 4 files changed, 14 insertions(+), 10 deletions(-)

-- 
1.8.5.2.421.g4cdf8d0
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 1/2] git-show: fix 'git show -s' to not add extra terminator after merge commit

2014-05-12 Thread Max Kirillov
When git show -s is called for merge commit it prints extra newline
after any merge commit and the next one. This looks especially ugly for
--oneline and other single-line formats. Looks very much like a bug.

The code in question exists since commit 3969cf7db1. Probably the
correct condition should be in fact
opt-output_format  DIFF_FORMAT_DIFFSTAT.

Test t7007-show.sh is also modified to cover this case.

Signed-off-by: Max Kirillov m...@max630.net
---
 combine-diff.c  | 3 ++-
 t/t7007-show.sh | 8 ++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/combine-diff.c b/combine-diff.c
index 3b92c448..ff6ceaf 100644
--- a/combine-diff.c
+++ b/combine-diff.c
@@ -1331,7 +1331,8 @@ void diff_tree_combined(const unsigned char *sha1,
if (show_log_first  i == 0) {
show_log(rev);
 
-   if (rev-verbose_header  opt-output_format)
+   if (rev-verbose_header  opt-output_format 
+   opt-output_format != DIFF_FORMAT_NO_OUTPUT)
printf(%s%c, diff_line_prefix(opt),
   opt-line_termination);
}
diff --git a/t/t7007-show.sh b/t/t7007-show.sh
index e41fa00..de22812 100755
--- a/t/t7007-show.sh
+++ b/t/t7007-show.sh
@@ -25,6 +25,7 @@ test_expect_success 'set up a bit of history' '
git checkout -b side HEAD^^ 
test_commit side2 
test_commit side3
+   test_merge merge main3
 '
 
 test_expect_success 'showing two commits' '
@@ -109,8 +110,11 @@ test_expect_success 'showing range' '
 '
 
 test_expect_success '-s suppresses diff' '
-   echo main3 expect 
-   git show -s --format=%s main3 actual 
+   cat expect -\EOF 
+   merge
+   main3
+   EOF
+   git show -s --format=%s merge main3 actual 
test_cmp expect actual
 '
 
-- 
1.8.5.2.421.g4cdf8d0

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 2/2] t: git-show: adapt tests to fixed 'git show'

2014-05-12 Thread Max Kirillov
'git show' used to print extra newline after merge commit, and it was
recorded so into the test reference data. Now when the behavior is
fixed, the tests should be updated.

Signed-off-by: Max Kirillov m...@max630.net
---
 t/t1507-rev-parse-upstream.sh |  2 +-
 t/t7600-merge.sh  | 11 +--
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/t/t1507-rev-parse-upstream.sh b/t/t1507-rev-parse-upstream.sh
index 2a19e79..672280b 100755
--- a/t/t1507-rev-parse-upstream.sh
+++ b/t/t1507-rev-parse-upstream.sh
@@ -100,7 +100,7 @@ test_expect_success 'merge my-side@{u} records the correct 
name' '
git branch -D new ;# can fail but is ok
git branch -t new my-side@{u} 
git merge -s ours new@{u} 
-   git show -s --pretty=format:%s actual 
+   git show -s --pretty=tformat:%s actual 
echo Merge remote-tracking branch ${sq}origin/side${sq} expect 
test_cmp expect actual
 )
diff --git a/t/t7600-merge.sh b/t/t7600-merge.sh
index 10aa028..b164621 100755
--- a/t/t7600-merge.sh
+++ b/t/t7600-merge.sh
@@ -57,11 +57,10 @@ create_merge_msgs () {
git log --no-merges ^HEAD c2 c3
} squash.1-5-9 
: msg.nologff 
-   echo msg.nolognoff 
+   : msg.nolognoff 
{
echo * tag 'c3': 
-   echo   commit 3 
-   echo
+   echo   commit 3
} msg.log
 }
 
@@ -71,7 +70,7 @@ verify_merge () {
git diff --exit-code 
if test -n $3
then
-   git show -s --pretty=format:%s HEAD msg.act 
+   git show -s --pretty=tformat:%s HEAD msg.act 
test_cmp $3 msg.act
fi
 }
@@ -620,10 +619,10 @@ test_expect_success 'merge early part of c2' '
git tag c6 
git branch -f c5-branch c5 
git merge c5-branch~1 
-   git show -s --pretty=format:%s HEAD actual.branch 
+   git show -s --pretty=tformat:%s HEAD actual.branch 
git reset --keep HEAD^ 
git merge c5~1 
-   git show -s --pretty=format:%s HEAD actual.tag 
+   git show -s --pretty=tformat:%s HEAD actual.tag 
test_cmp expected.branch actual.branch 
test_cmp expected.tag actual.tag
 '
-- 
1.8.5.2.421.g4cdf8d0

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [BUGFIX/RFC] git-show: fix 'git show -s' to not add extra terminator after merge commit

2014-05-12 Thread Max Kirillov
On Mon, May 12, 2014 at 09:59:39AM -0700, Junio C Hamano wrote:
 A good way to double-check may be to see the fixes to the tests to
 correct their wrong expectations, and if the updated expectation is
 sensible.

I have sent the fixes to tests. To me they look sensible.

Also fixed the things you pointed out.

-- 
Max
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[BUG] git-gui regression in 2.0rcX within submodule

2014-05-12 Thread Yann Dirson
In 2.0rc2, git-gui is unable to work inside submodules, where 1.9.2
did not show such a problem:


yann@home:~$ cd /tmp/
yann@home:tmp$ mkdir foo
yann@home:tmp$ cd foo/
yann@home:foo$ git init
Initialized empty Git repository in /tmp/foo/.git/
yann@home:foo (master)$ git submodule add 
git://git.debian.org/git/collab-maint/tulip.git debian
Cloning into 'debian'...
remote: Counting objects: 317, done.
remote: Compressing objects: 100% (199/199), done.
remote: Total 317 (delta 184), reused 166 (delta 95)
Receiving objects: 100% (317/317), 73.81 KiB | 0 bytes/s, done.
Resolving deltas: 100% (184/184), done.
Checking connectivity... done.
yann@home:foo (master)$ git status 
On branch master

Initial commit

Changes to be committed:
  (use git rm --cached file... to unstage)

new file:   .gitmodules
new file:   debian

yann@home:foo (master)$ (cd debian/  git gui)
[errors out after showing the following error dialog]

| No working directory ../../../debian:
| 
| couldn't change working directory
| to ../../../debian: no such file or
| directory


strace shows the failing chdir call is from git-gui itself, after
getcwd() told him that it is in the dir that is indeed the workdir
already.

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2] contrib/subtree bugfix: Can't `add` annotated tag

2014-05-12 Thread James Denholm
cmd_add_commit() is passed FETCH_HEAD by cmd_add_repository, which is
then rev-parsed into an object ID. However, if the user is fetching a
tag rather than a branch HEAD, such as by executing:

$ git subtree add -P oldGit https://github.com/git/git.git tags/v1.8.0

The object ID is a tag and is never peeled, and the git commit-tree call
(line 561) slaps us in the face because it doesn't handle tag IDs.

Because peeling a committish ID doesn't do anything if it's already a
commit, fix by peeling[1] the object ID before assigning it to $rev, as
per the patch.

[*1*]: Via peel_committish(), from git:git-sh-setup.sh, pre-existing
dependency of git-subtree.

Reported-by: Kevin Cagle kca...@micron.com
Helped-by: Junio C Hamano gits...@pobox.com
Signed-off-by: James Denholm nod.h...@gmail.com
---
I felt that defining revp would be a little more self-documenting than
using $rev^0.

 contrib/subtree/git-subtree.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh
index dc59a91..eefd720 100755
--- a/contrib/subtree/git-subtree.sh
+++ b/contrib/subtree/git-subtree.sh
@@ -557,8 +557,9 @@ cmd_add_commit()
commit=$(add_squashed_msg $rev $dir |
 git commit-tree $tree $headp -p $rev) || exit $?
else
+   revp=$(peel_committish $rev)
commit=$(add_msg $dir $headrev $rev |
-git commit-tree $tree $headp -p $rev) || exit $?
+git commit-tree $tree $headp -p $revp) || exit $?
fi
git reset $commit || exit $?

-- 
1.9.2

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/2] git-show: fix 'git show -s' to not add extra terminator after merge commit

2014-05-12 Thread Johannes Sixt
Am 5/13/2014 1:10, schrieb Max Kirillov:
 --- a/t/t7007-show.sh
 +++ b/t/t7007-show.sh
 @@ -25,6 +25,7 @@ test_expect_success 'set up a bit of history' '
   git checkout -b side HEAD^^ 
   test_commit side2 
   test_commit side3
 + test_merge merge main3
  '

Broken -chain.

-- Hannes
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html