* [PATCH 0/9] remote-helpers: fixes and cleanups @ 2013-04-25 11:20 Felipe Contreras 2013-04-25 11:20 ` [PATCH 1/9] remote-bzr: trivial cleanups Felipe Contreras ` (8 more replies) 0 siblings, 9 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 11:20 UTC (permalink / raw) To: git Cc: Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn, Felipe Contreras Hi, Here's a bunch of cleanups mostly to synchronize remote-bzr and remote-hg. One of these might conflict with a series already in pu, if so, the code here should be the prefered one. Felipe Contreras (9): remote-bzr: trivial cleanups remote-hg: remove extra check remote-bzr: fix bad state issue remote-bzr: add support to push URLs remote-hg: use hashlib instead of hg sha1 util remote-bzr: store converted URL remote-hg: use python urlparse remote-bzr: tell bazaar to be quiet remote-bzr: strip extra newline contrib/remote-helpers/git-remote-bzr | 47 ++++++++++++++++++++++++++++++----- contrib/remote-helpers/git-remote-hg | 17 ++++++------- 2 files changed, 48 insertions(+), 16 deletions(-) -- 1.8.2.1 ^ permalink raw reply [flat|nested] 49+ messages in thread
* [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 11:20 [PATCH 0/9] remote-helpers: fixes and cleanups Felipe Contreras @ 2013-04-25 11:20 ` Felipe Contreras 2013-04-25 18:19 ` Ramkumar Ramachandra 2013-04-25 11:20 ` [PATCH 2/9] remote-hg: remove extra check Felipe Contreras ` (7 subsequent siblings) 8 siblings, 1 reply; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 11:20 UTC (permalink / raw) To: git Cc: Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn, Felipe Contreras Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- contrib/remote-helpers/git-remote-bzr | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr index aa7bc97..82bf7c7 100755 --- a/contrib/remote-helpers/git-remote-bzr +++ b/contrib/remote-helpers/git-remote-bzr @@ -94,7 +94,7 @@ class Marks: return self.last_mark def is_marked(self, rev): - return self.marks.has_key(rev) + return rev in self.marks def new_mark(self, rev, mark): self.marks[rev] = mark @@ -224,7 +224,7 @@ def export_files(tree, files): else: mode = '100644' - # is the blog already exported? + # is the blob already exported? if h in filenodes: mark = filenodes[h] final.append((mode, mark, path)) @@ -521,7 +521,7 @@ def c_style_unescape(string): return string def parse_commit(parser): - global marks, blob_marks, bmarks, parsed_refs + global marks, blob_marks, parsed_refs global mode parents = [] @@ -555,7 +555,7 @@ def parse_commit(parser): mark = int(mark_ref[1:]) f = { 'mode' : m, 'data' : blob_marks[mark] } elif parser.check('D'): - t, path = line.split(' ') + t, path = line.split(' ', 1) f = { 'deleted' : True } else: die('Unknown file command: %s' % line) @@ -643,6 +643,7 @@ def do_export(parser): wt = repo.bzrdir.open_workingtree() wt.update() print "ok %s" % ref + print def do_capabilities(parser): -- 1.8.2.1 ^ permalink raw reply related [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 11:20 ` [PATCH 1/9] remote-bzr: trivial cleanups Felipe Contreras @ 2013-04-25 18:19 ` Ramkumar Ramachandra 2013-04-25 19:20 ` Felipe Contreras 2013-04-25 19:29 ` Stefano Lattarini 0 siblings, 2 replies; 49+ messages in thread From: Ramkumar Ramachandra @ 2013-04-25 18:19 UTC (permalink / raw) To: Felipe Contreras Cc: git, Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras wrote: > diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr > index aa7bc97..82bf7c7 100755 > --- a/contrib/remote-helpers/git-remote-bzr > +++ b/contrib/remote-helpers/git-remote-bzr > @@ -94,7 +94,7 @@ class Marks: > return self.last_mark > > def is_marked(self, rev): > - return self.marks.has_key(rev) > + return rev in self.marks Why? Is the new form faster than the older one? > @@ -224,7 +224,7 @@ def export_files(tree, files): > else: > mode = '100644' > > - # is the blog already exported? > + # is the blob already exported? What is this? Whitespace? > @@ -521,7 +521,7 @@ def c_style_unescape(string): > return string > > def parse_commit(parser): > - global marks, blob_marks, bmarks, parsed_refs > + global marks, blob_marks, parsed_refs How is this trivial? You just removed one argument. > @@ -555,7 +555,7 @@ def parse_commit(parser): > mark = int(mark_ref[1:]) > f = { 'mode' : m, 'data' : blob_marks[mark] } > elif parser.check('D'): > - t, path = line.split(' ') > + t, path = line.split(' ', 1) How on earth is this trivial? It changes the entire meaning! > @@ -643,6 +643,7 @@ def do_export(parser): > wt = repo.bzrdir.open_workingtree() > wt.update() > print "ok %s" % ref > + Whitespace? I'm outraged by this. What kind of changes are you pushing to remote-hg? A "trivial cleanups" bundling miscellaneous changes, with no commit message? Why don't you just squash everything into one "miscellaneous changes" patch? ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 18:19 ` Ramkumar Ramachandra @ 2013-04-25 19:20 ` Felipe Contreras 2013-04-25 20:30 ` Thomas Rast 2013-04-25 20:36 ` Junio C Hamano 2013-04-25 19:29 ` Stefano Lattarini 1 sibling, 2 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 19:20 UTC (permalink / raw) To: Ramkumar Ramachandra Cc: git, Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn On Thu, Apr 25, 2013 at 1:19 PM, Ramkumar Ramachandra <artagnon@gmail.com> wrote: > Felipe Contreras wrote: >> diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr >> index aa7bc97..82bf7c7 100755 >> --- a/contrib/remote-helpers/git-remote-bzr >> +++ b/contrib/remote-helpers/git-remote-bzr >> @@ -94,7 +94,7 @@ class Marks: >> return self.last_mark >> >> def is_marked(self, rev): >> - return self.marks.has_key(rev) >> + return rev in self.marks > > Why? Is the new form faster than the older one? has_key is deprecated. >> @@ -224,7 +224,7 @@ def export_files(tree, files): >> else: >> mode = '100644' >> >> - # is the blog already exported? >> + # is the blob already exported? > > What is this? Whitespace? s/blog/blob/ >> @@ -521,7 +521,7 @@ def c_style_unescape(string): >> return string >> >> def parse_commit(parser): >> - global marks, blob_marks, bmarks, parsed_refs >> + global marks, blob_marks, parsed_refs > > How is this trivial? You just removed one argument. It's not an argument. >> @@ -555,7 +555,7 @@ def parse_commit(parser): >> mark = int(mark_ref[1:]) >> f = { 'mode' : m, 'data' : blob_marks[mark] } >> elif parser.check('D'): >> - t, path = line.split(' ') >> + t, path = line.split(' ', 1) > > How on earth is this trivial? It changes the entire meaning! And nobody has noticed any problem. >> @@ -643,6 +643,7 @@ def do_export(parser): >> wt = repo.bzrdir.open_workingtree() >> wt.update() >> print "ok %s" % ref >> + > > Whitespace? Aka. trivial. > I'm outraged by this. What kind of changes are you pushing to > remote-hg? A "trivial cleanups" bundling miscellaneous changes, with > no commit message? There are no miscellaneous changes other than the *possible* fix for deleted files. Which we don't know if it would actually fix anything, but as far as we know if it's a bug, nobody has seen it, and if it isn't, it's very unlikely that anybody is relying on the current behavior. Plus the change seems to be obviously correct, as it comes from remote-hg, where somebody appeared to have found a bug. That being said, I do remember writing an explanation for this in the commit message: -- commit ca8c02dc7ea6395b1c864296f2500b718892fab8 Reflog: HEAD@{143} (Felipe Contreras <felipe.contreras@gmail.com>) Reflog message: rebase -i (fixup): remote-bzr: trivial cleanups Author: Felipe Contreras <felipe.contreras@gmail.com> Date: Tue Apr 23 18:29:49 2013 -0500 remote-bzr: trivial cleanups Mostly from remote-hg. It's possible that there's a fix to delete files with spaces. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- Yeap, there it is. It was just squashed by mistake. But I do not care that much really. The patch is good either way, if you don't like it, you go ahead and fix it, because I won't. I have 174 remote-helper related patches in my queue, and nobody benefits from rambling about a one liner that is obviously correct, not you, not me, not the users, not the developers. Junio of course might disagree and drop this patch, but then he would need to deal with the fallout of possible conflicts. Or he can do the sensible thing and pick the commit message above. I have real issues to deal with, and I think the less-than-perfect commit messages in a *contrib* script that is extremely recent is a small price to pay for having nice and workable bzr and mercurial remote-helpers as soon as possible; our users would thank us, and in fact, they already are. In my hurry to reorganize all the commits of my fourteen remote-helper branches, I squashed the commit message of a trivial fix into trivial cleanups. Big whooping deal. > Why don't you just squash everything into one > "miscellaneous changes" patch? Hyperbole much? Cheers. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 19:20 ` Felipe Contreras @ 2013-04-25 20:30 ` Thomas Rast 2013-04-25 20:52 ` Felipe Contreras 2013-04-25 20:36 ` Junio C Hamano 1 sibling, 1 reply; 49+ messages in thread From: Thomas Rast @ 2013-04-25 20:30 UTC (permalink / raw) To: Felipe Contreras Cc: Ramkumar Ramachandra, git, Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras <felipe.contreras@gmail.com> writes: > But I do not care that much really. The patch is good either way, if > you don't like it, you go ahead and fix it, because I won't. I have > 174 remote-helper related patches in my queue, and nobody benefits > from rambling about a one liner that is obviously correct, not you, > not me, not the users, not the developers. You don't stick to the rules of this project, which have been pointed out already: The body should provide a meaningful commit message, which: . explains the problem the change tries to solve, iow, what is wrong with the current code without the change. . justifies the way the change solves the problem, iow, why the result with the change is better. . alternate solutions considered but discarded, if any. Your project is moving too fast to put up with the established procedures in this community. In fact you are pretty much holding us hostage with a "take it or keep it broken while causing more work" attitude: > Junio of course might disagree and drop this patch, but then he would > need to deal with the fallout of possible conflicts. You did not respond well to reviews and criticism. Even the constructive fine-let's-do-the-work-for-him kind that Peff offered. And on top of that, remote helpers are written against an interface that was designed to allow working with external programs. So why is this in git.git? Why should we take any more contrib additions from you? -- Thomas Rast trast@{inf,student}.ethz.ch ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 20:30 ` Thomas Rast @ 2013-04-25 20:52 ` Felipe Contreras 2013-04-25 21:37 ` Junio C Hamano 0 siblings, 1 reply; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 20:52 UTC (permalink / raw) To: Thomas Rast Cc: Ramkumar Ramachandra, git, Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn On Thu, Apr 25, 2013 at 3:30 PM, Thomas Rast <trast@inf.ethz.ch> wrote: > Felipe Contreras <felipe.contreras@gmail.com> writes: > >> But I do not care that much really. The patch is good either way, if >> you don't like it, you go ahead and fix it, because I won't. I have >> 174 remote-helper related patches in my queue, and nobody benefits >> from rambling about a one liner that is obviously correct, not you, >> not me, not the users, not the developers. > > You don't stick to the rules of this project, which have been pointed > out already: The rules of the contrib area are different from the ones of the rest of the project. > Your project is moving too fast to put up with the established > procedures in this community. That's one of the reasons it's in the contrib area. > In fact you are pretty much holding us hostage with a "take it or keep > it broken while causing more work" attitude: I'm the maintainer of this code, so it's my call. If Junio has a problem with that, I would gladly take my code somewhere else. I doubt that's in the best interest of anyone. But if the problem is this particular patch (reaally?), Junio could just drop this particular patch. Are you seriously suggesting that the whole contrib/remote-helpers should be dropped because this patch introduces a one-liner fix without mentioning it in the commit message? Really? I haven't seen anybody complain about *any* of the other patches where I "held the project hostage" and refused to fix the commit message or change the patch. Other than this instance, show me where exactly did I do that. >> Junio of course might disagree and drop this patch, but then he would >> need to deal with the fallout of possible conflicts. > > You did not respond well to reviews and criticism. Even the > constructive fine-let's-do-the-work-for-him kind that Peff offered. Define "respond well". If your idea to "respond well" is to say "Yes sir!" to every criticism, then no, I didn't. OTOH, if it's to reply and address the issues with objective reasoning and an open mind, I did. I don't understand this notion that every review criticism is valid and correct. They are not, and it's OK to point that out.. really. If they turn to be valid and correct, the reviewer can surely counter-argue and substantiate his/her claims. And I don't recall Peff ever doing this "constructive fine-let's-do-the-work-for-him" on any contrib/remote-helpers stuff. > So why is this in git.git? > > Why should we take any more contrib additions from you? Because it's good for the users. If you are seriously suggesting to drop contrib/remote-helpers, I suggest that 1) don't do it in the review thread of a trivial patch 2) start a new thread where you point multiple instances where the maintainer of the code (me) failed to respond correctly to criticism (of remote-helpers's code), 3) show how this affects negatively the project, and 4) ask for new maintainers if the job of the current one is not deemed up-to-par, and only if no maintainer steps up, drop the code. Cheers. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 20:52 ` Felipe Contreras @ 2013-04-25 21:37 ` Junio C Hamano 2013-04-25 21:49 ` Felipe Contreras 0 siblings, 1 reply; 49+ messages in thread From: Junio C Hamano @ 2013-04-25 21:37 UTC (permalink / raw) To: Felipe Contreras Cc: Thomas Rast, Ramkumar Ramachandra, git, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras <felipe.contreras@gmail.com> writes: > On Thu, Apr 25, 2013 at 3:30 PM, Thomas Rast <trast@inf.ethz.ch> wrote: >> Felipe Contreras <felipe.contreras@gmail.com> writes: >> >>> But I do not care that much really. The patch is good either way, if >>> you don't like it, you go ahead and fix it, because I won't. I have >>> 174 remote-helper related patches in my queue, and nobody benefits >>> from rambling about a one liner that is obviously correct, not you, >>> not me, not the users, not the developers. >> >> You don't stick to the rules of this project, which have been pointed >> out already: > > The rules of the contrib area are different from the ones of the rest > of the project. Yes and no. A contrib/ material may not be held to the same high standard, but that does not mean a contrib/ area maintainer has a blank check to do anything there. It would be pretty obvious to people observing what happens in the area after a while, if the quality standard the area maintainer enforces is too out of whack, and at that point the area maintainer deserves to be ridiculed ;-) > And I don't recall Peff ever doing this "constructive > fine-let's-do-the-work-for-him" on any contrib/remote-helpers stuff. I do not think Thomas was talking specific about contrib/ material but your interaction in general with other developers. Cf. http://thread.gmane.org/gmane.comp.version-control.git/220427/focus=220891 FWIW, I thought "that person was me" response from him was more than reasonable, and I still do. ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 21:37 ` Junio C Hamano @ 2013-04-25 21:49 ` Felipe Contreras 0 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 21:49 UTC (permalink / raw) To: Junio C Hamano Cc: Thomas Rast, Ramkumar Ramachandra, git, Christophe Simonis, Simon Ruderich, Max Horn On Thu, Apr 25, 2013 at 4:37 PM, Junio C Hamano <gitster@pobox.com> wrote: > Felipe Contreras <felipe.contreras@gmail.com> writes: > >> On Thu, Apr 25, 2013 at 3:30 PM, Thomas Rast <trast@inf.ethz.ch> wrote: >>> Felipe Contreras <felipe.contreras@gmail.com> writes: >>> >>>> But I do not care that much really. The patch is good either way, if >>>> you don't like it, you go ahead and fix it, because I won't. I have >>>> 174 remote-helper related patches in my queue, and nobody benefits >>>> from rambling about a one liner that is obviously correct, not you, >>>> not me, not the users, not the developers. >>> >>> You don't stick to the rules of this project, which have been pointed >>> out already: >> >> The rules of the contrib area are different from the ones of the rest >> of the project. > > Yes and no. > > A contrib/ material may not be held to the same high standard, but > that does not mean a contrib/ area maintainer has a blank check to > do anything there. Nor did I claim I had one. > It would be pretty obvious to people observing what happens in the > area after a while, if the quality standard the area maintainer > enforces is too out of whack, and at that point the area maintainer > deserves to be ridiculed ;-) Of course, but the claim the rules are different still stands. >> And I don't recall Peff ever doing this "constructive >> fine-let's-do-the-work-for-him" on any contrib/remote-helpers stuff. > > I do not think Thomas was talking specific about contrib/ material > but your interaction in general with other developers. > > Cf. http://thread.gmane.org/gmane.comp.version-control.git/220427/focus=220891 Yeah but how is that relevant in this context? We are talking about a particular patch of remote-bzr. And he immediately used that claim as ammunition to suggest the whole remote-helpers should be dropped. It does not follow. Any suggestion to drop remote-helpers should use facts and arguments regarding remote-helpers. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 19:20 ` Felipe Contreras 2013-04-25 20:30 ` Thomas Rast @ 2013-04-25 20:36 ` Junio C Hamano 2013-04-25 21:35 ` Felipe Contreras 1 sibling, 1 reply; 49+ messages in thread From: Junio C Hamano @ 2013-04-25 20:36 UTC (permalink / raw) To: Felipe Contreras Cc: Ramkumar Ramachandra, git, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras <felipe.contreras@gmail.com> writes: > But I do not care that much really. The patch is good either way, if > you don't like it, you go ahead and fix it, because I won't. I have > 174 remote-helper related patches in my queue, and nobody benefits > from rambling about a one liner that is obviously correct, not you, > not me, not the users, not the developers. Three random points. * For this particular patch [1/9], especially because this would land close to the corresponding remote-hg fixes (e.g. "has_key is deprecated"), I think it is sufficient to say "port fixes from corresponding remote-hg patches" (you said it in 0/9 and didn't say it in 1/9, though) without going into individual details. Anybody who wonders what these changes were about will have a clue to check contemporary patches to remote-hg that way. * You may want to hold onto those 174 patches and polish their explanation up to save the list audiences' time by avoiding this kind of useless "why no explanation" exchanges. * If you do not want to keep a readable history, it would mean that nobody but you will fix problems discovered in the future in remote-hg, and there is no point carrying it in my tree for other Git developers to look at it. The users are better off getting them from your tree and that will make it clear for them whom to ask help/fix for when they hit a snag. > Junio of course might disagree and drop this patch, but then he would > need to deal with the fallout of possible conflicts. A much more sensible thing in such a case for me to do actually is to drop the whole thing. I do not want to do that unless necessary. > ... I think the less-than-perfect commit messages in a > *contrib* script that is extremely recent is a small price to pay for > having nice and workable bzr and mercurial remote-helpers as soon as > possible I do not share this view at all. The users survived without it long enough; they can wait for a well maintained version. On the other hand, shipping something that will not be maintainable is not the way to help end users. It is being irresponsive to them. Helping other developers understand your code is a way to ensure that your code that would help users will be kept maintained. I do not agree with Ram at all when he says that developers are more important than users, and I agree with you that the project exists for users, and not for developers. But you need to help your fellow developers anyway by spending effort to keep your history readable, in order to help them help the users. Do not take the "users matter" mantra to the extreme. You need other developers to put users first. ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 20:36 ` Junio C Hamano @ 2013-04-25 21:35 ` Felipe Contreras 2013-04-25 22:01 ` Junio C Hamano 2013-04-26 9:32 ` Ramkumar Ramachandra 0 siblings, 2 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 21:35 UTC (permalink / raw) To: Junio C Hamano Cc: Ramkumar Ramachandra, git, Christophe Simonis, Simon Ruderich, Max Horn On Thu, Apr 25, 2013 at 3:36 PM, Junio C Hamano <gitster@pobox.com> wrote: > Felipe Contreras <felipe.contreras@gmail.com> writes: > >> But I do not care that much really. The patch is good either way, if >> you don't like it, you go ahead and fix it, because I won't. I have >> 174 remote-helper related patches in my queue, and nobody benefits >> from rambling about a one liner that is obviously correct, not you, >> not me, not the users, not the developers. > > Three random points. > > * For this particular patch [1/9], especially because this would > land close to the corresponding remote-hg fixes (e.g. "has_key is > deprecated"), I think it is sufficient to say "port fixes from > corresponding remote-hg patches" (you said it in 0/9 and didn't > say it in 1/9, though) without going into individual details. > Anybody who wonders what these changes were about will have a > clue to check contemporary patches to remote-hg that way. I don't see the value of pointing that out in the particular commit, since you are the only one that would do anything with that information, and it seems the message came across. If there's any issues with that, just drop the patch, and if there's issues with the rest of the series, just drop them. I'll resend when the stuff is merged to master. > * You may want to hold onto those 174 patches and polish their > explanation up to save the list audiences' time by avoiding this > kind of useless "why no explanation" exchanges. That's exactly what I've been doing. You are extrapolating from this particular patch, which I already admitted I made a mistake, and it's not really important in any way. > * If you do not want to keep a readable history, it would mean that > nobody but you will fix problems discovered in the future in > remote-hg, and there is no point carrying it in my tree for other > Git developers to look at it. The users are better off getting > them from your tree and that will make it clear for them whom to > ask help/fix for when they hit a snag. The history *is* readable. If anybody has any problems with the commit messages, the place to mention such problems is IN THE PATCH REVIEW. Nobody has done that, because either nobody has any problems, or they are not interested. Either way, there's nothing I can do about it. *This* patch is an exception, and I'm not willing to waste time on this extremely trivial patch. Drop it. >> Junio of course might disagree and drop this patch, but then he would >> need to deal with the fallout of possible conflicts. > > A much more sensible thing in such a case for me to do actually is > to drop the whole thing. I do not want to do that unless necessary. You want to drop the whole series because of a cleanup patch with a less-than-perfect commit message? Even though there quite likely won't be any conflicts if you drop the single patch. Fine, drop the whole series. >> ... I think the less-than-perfect commit messages in a >> *contrib* script that is extremely recent is a small price to pay for >> having nice and workable bzr and mercurial remote-helpers as soon as >> possible > > I do not share this view at all. The users survived without it long > enough; they can wait for a well maintained version. On the other > hand, shipping something that will not be maintainable is not the > way to help end users. It is being irresponsive to them. Are you saying that because *ONE PATCH*, introduces a fix without mentioning it in the commit message, *THE WHOLE* project becomes unmaintainable? If not, then why are we discussing about something that is not happening? > Helping other developers understand your code is a way to ensure > that your code that would help users will be kept maintained. I do > not agree with Ram at all when he says that developers are more > important than users, and I agree with you that the project exists > for users, and not for developers. But you need to help your fellow > developers anyway by spending effort to keep your history readable, > in order to help them help the users. And I am. Because I made a mistake in this patch doesn't mean the same happened in all the patches. I am helping my fellow developers by replying to the comments they make when I send the patches for review. Unfortunately, the only developer other than you that has made any comment at all, Ramkumar Ramachandra, did so in a bellicose tone, but I replied to all his comments either way, which where invalid. The only comment where he is right and I acknowledged making a small mistake, is trivial, does not cause any issues, and can be easily dropped. > Do not take the "users matter" mantra to the extreme. You need other > developers to put users first. No, I don't. It would be nice, yes, but not necessary. Now, let's drop this pointless discussion and deal with the actual issue. What do you want to do? 1) Drop this patch 2) Drop the whole series 3) I reroll without the change that was not described Anything else, I'm not interested in doing. There's tasks with actual value to do. Cheers. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 21:35 ` Felipe Contreras @ 2013-04-25 22:01 ` Junio C Hamano 2013-04-25 22:58 ` Felipe Contreras 2013-04-26 9:32 ` Ramkumar Ramachandra 1 sibling, 1 reply; 49+ messages in thread From: Junio C Hamano @ 2013-04-25 22:01 UTC (permalink / raw) To: Felipe Contreras Cc: Ramkumar Ramachandra, git, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras <felipe.contreras@gmail.com> writes: >> Three random points. >> >> * For this particular patch [1/9], especially because this would >> land close to the corresponding remote-hg fixes (e.g. "has_key is >> deprecated"), I think it is sufficient to say "port fixes from >> corresponding remote-hg patches" (you said it in 0/9 and didn't >> say it in 1/9, though) without going into individual details. >> Anybody who wonders what these changes were about will have a >> clue to check contemporary patches to remote-hg that way. > > If there's any issues with that, just drop the patch,... > ... > 1) Drop this patch > 2) Drop the whole series > 3) I reroll without the change that was not described Just in case you missed it, the first in the three-random-points was "I personally think 1/9 that does not say anything about the minute and irrelevant details Ram kibitzed about is fine". So "Drop this patch" is not something on the table in the first place. * After seeing that this change is a copy from recent remote-hg changes, a revier who did a little homework would easily find a change around has_key in recent patches. * A reviewer who did a little homework would know by reading a bit beyond the patch context to see that nobody uses "bmarks". * A reviewer who wondered how the two lines are different can stop staring at the screen, take a walk and come back with refreshed eyes to spot the difference between blog and blob very easily. For these reasons, I personally do not think it is unreasonable to throw comments like the ones on "has_key", "global bmarks", and "blog vs blob" into "too obvious, not even deserve to be responded" bin. Having said that, I am more worried about wasting everybody's time (and this includes your time) with the impedance mismatch between you and the rest of us. Our standard for explaining the change (either in the log or in the comment) is to err on the descriptive side to be helpful even to people new to the codebase. We do not require or encourage to state the obvious. The issue is the definition of "obviousness" varies even among the rest of us and even for a single person depending on how familiar that person is with the area of the code in question. But the divide between you (alone) and the rest of us seems to be far more vast than differences among the people other than you. Especially the criteria I used in the above example for "bmarks" need to be used carefully. If a reviewer needs to follow a very deep callchain to convince himself why a change does not break things, it is no longer obvious and deserves to be explained. So I dunno. If you are not willing to change your ways and try to be more descriptive to help others to understand what you are doing, there is nothing I can do to help you. ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 22:01 ` Junio C Hamano @ 2013-04-25 22:58 ` Felipe Contreras 2013-04-25 23:11 ` Junio C Hamano 2013-04-26 12:19 ` Ramkumar Ramachandra 0 siblings, 2 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 22:58 UTC (permalink / raw) To: Junio C Hamano Cc: Ramkumar Ramachandra, git, Christophe Simonis, Simon Ruderich, Max Horn On Thu, Apr 25, 2013 at 5:01 PM, Junio C Hamano <gitster@pobox.com> wrote: > Having said that, I am more worried about wasting everybody's time > (and this includes your time) with the impedance mismatch between > you and the rest of us. > > Our standard for explaining the change (either in the log or in the > comment) is to err on the descriptive side to be helpful even to > people new to the codebase. We do not require or encourage to state > the obvious. The issue is the definition of "obviousness" varies > even among the rest of us and even for a single person depending on > how familiar that person is with the area of the code in question. > But the divide between you (alone) and the rest of us seems to be > far more vast than differences among the people other than you. You are missing my point, this is *ONE INSTANCE*. Show me another instance where a reviewer complained about the lack of a descriptive commit messages on *remote-helpers*. > Especially the criteria I used in the above example for "bmarks" > need to be used carefully. If a reviewer needs to follow a very > deep callchain to convince himself why a change does not break > things, it is no longer obvious and deserves to be explained. So if I'm not willing to describe every little trivial cleanup change I do, what should I do then? Avoid those trivial changes? If your true purpose of having descriptive commit messages is to improve maintainability, then actually doing these cleanups should have priority over a descriptive commit message, because doing the cleanups improves the maintainability even without a detailed description. Clearly, your reasoning is incomplete. > So I dunno. If you are not willing to change your ways and try to > be more descriptive to help others to understand what you are doing, > there is nothing I can do to help you. I'm willing to change my ways when there's reason to change my ways, and so far, nobody has provided any evidence that my commit messages are indeed lacking, only *opinions*. Other people are perfectly fine with them: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=felipe.contreras And the only reason we are wasting time, is that *you* make us waste time. Any sensible reviewer would be context aware, notice that this is a contrib patch, and focus on behavioral changes, notice the mistake I made, and point that *one* of the changes was changing the behavior, at which point I would agree and reroll either without that change, or with the change in a separate commit (which I don't want to do right now). The maintainer (you), wouldn't even have to reply at all. But the reviewer failed to do so, and other contributors went even further, so the ball is in now in your court. IMO a sensible maintainer would simply say "Guys, stay on topic, what do we do with this patch?", but no, you allow people to suggest that not only the whole series, but the whole sub-project be dropped, and to do so with totally unrelated facts, and generalizing from *ONE INSTANCE* in the actual sub-project, and generally from ad hominem arguments. This doesn't help anybody. Show me a systemic problem with the commit messages *in remote-helpers*, and then perhaps it would be worth to start *a new thread* to discuss them, but nobody has done so. We are still talking about a *single patch*. And if you really really don't like the patch, say "do X, or I drop the patch", or the series, and there would be no need for other reviewers to waste their time (if their comments were truly valid and correct, which they are not). There's no need to say anything more. And even if the reviewers were correct in their comments, allowing suggestions such as that the whole sub-project should be dropped because of one patch is going to waste people's times, no matter what. Cheers. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 22:58 ` Felipe Contreras @ 2013-04-25 23:11 ` Junio C Hamano 2013-04-26 1:19 ` Felipe Contreras 2013-04-26 12:19 ` Ramkumar Ramachandra 1 sibling, 1 reply; 49+ messages in thread From: Junio C Hamano @ 2013-04-25 23:11 UTC (permalink / raw) To: Felipe Contreras Cc: Ramkumar Ramachandra, git, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras <felipe.contreras@gmail.com> writes: > You are missing my point, this is *ONE INSTANCE*. Show me another > instance where a reviewer complained about the lack of a descriptive > commit messages on *remote-helpers*. You are the one who is missing the point. My message was about your patches to _any_ part of our system, not limited to remote helpers. ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 23:11 ` Junio C Hamano @ 2013-04-26 1:19 ` Felipe Contreras 0 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-26 1:19 UTC (permalink / raw) To: Junio C Hamano Cc: Ramkumar Ramachandra, git, Christophe Simonis, Simon Ruderich, Max Horn On Thu, Apr 25, 2013 at 6:11 PM, Junio C Hamano <gitster@pobox.com> wrote: > Felipe Contreras <felipe.contreras@gmail.com> writes: > >> You are missing my point, this is *ONE INSTANCE*. Show me another >> instance where a reviewer complained about the lack of a descriptive >> commit messages on *remote-helpers*. > > You are the one who is missing the point. My message was about your > patches to _any_ part of our system, not limited to remote helpers. I still see "Re: [PATCH 1/9] remote-bzr: trivial cleanups", if we are talking about something else, let's do so and be clear in the subject, but I don't see what this has to do with this trivial patch, the series, or even remote-bzr in general (for which nobody has complained bout commit messages before). -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 22:58 ` Felipe Contreras 2013-04-25 23:11 ` Junio C Hamano @ 2013-04-26 12:19 ` Ramkumar Ramachandra 2013-04-26 18:48 ` Felipe Contreras 1 sibling, 1 reply; 49+ messages in thread From: Ramkumar Ramachandra @ 2013-04-26 12:19 UTC (permalink / raw) To: Felipe Contreras Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras wrote: > Any sensible reviewer would be context aware, notice that this > is a contrib patch, and focus on behavioral changes, notice the > mistake I made, and point that *one* of the changes was changing the > behavior, at which point I would agree and reroll either without that > change, or with the change in a separate commit (which I don't want to > do right now). The maintainer (you), wouldn't even have to reply at > all. Personally, I think it is the job of the submitter to provide a really helpful commit message and widen his review audience. If I'm hitting the git mailing list with my patches, I try to make sure that nearly everyone on the list can understand what I've done and potentially review it. Why else would I want to hit their inboxes with my patches? Here's my solution to the problem: maintain your project outside git.git and merge changes in every couple of months or so with a simple email containing a pull URL, addressing Junio. If Junio trusts you enough to put the changes you send into contrib/ after a cursory glance, we're done. Start a separate mailing list for your project/ accept GitHub pull requests via which contributors can send you changes. No more fuss or drama on the git list about this. You can be as stubborn as you want, and we go back to our lives. Everyone wins. If you want to submit patches to other parts of git, you seriously need to change your ways. Let's deal with that problem when it arises next. ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 12:19 ` Ramkumar Ramachandra @ 2013-04-26 18:48 ` Felipe Contreras 2013-04-26 18:53 ` Ramkumar Ramachandra 2013-04-26 19:39 ` Ramkumar Ramachandra 0 siblings, 2 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-26 18:48 UTC (permalink / raw) To: Ramkumar Ramachandra Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn On Fri, Apr 26, 2013 at 7:19 AM, Ramkumar Ramachandra <artagnon@gmail.com> wrote: > Felipe Contreras wrote: >> Any sensible reviewer would be context aware, notice that this >> is a contrib patch, and focus on behavioral changes, notice the >> mistake I made, and point that *one* of the changes was changing the >> behavior, at which point I would agree and reroll either without that >> change, or with the change in a separate commit (which I don't want to >> do right now). The maintainer (you), wouldn't even have to reply at >> all. > > Personally, I think it is the job of the submitter to provide a really > helpful commit message and widen his review audience. If I'm hitting > the git mailing list with my patches, I try to make sure that nearly > everyone on the list can understand what I've done and potentially > review it. Why else would I want to hit their inboxes with my > patches? If you don't understand the reasoning and history behind remote-bzr, you might be doing a disservice to everyone by commenting at all. Bazaar is a dead project, and there are *real* users suffering as we speak, bound to eternal SCM torment by evil dictators and political non-speak. Even the worst of remote-bzr patches are a thousand times better than what you see in bzr code itself. To give you some perspective, one commit broke a branch in the emacs project, and ever since then people are not able to clone that branch. This bug has been known for years, and nobody fixes it. Every time anybody tries to clone that branch, they need a special sequence of commands. They *need* something like remote-bzr to escape the horrendities of bzr, and all you are doing complaining about a sneaked fix is a disservice to everyone. Yes, doing such a thing on git.c would not be particularly great, but wouldn't be horrific either, fortunately we are not doing that! Answer me, do you use bzr? No? Do you use remote-bzr? No? Then how in hell could you possibly have any contextual information to make even a guess as to what would be the impact of sneaking such a small fix? You can't. But why are we even speaking about this nonsense? This patch has been dropped. You want to review something, go review PATCH v2 1/9. Stop arguing about stubbornness and hypotheticals, when there's actual code to review. What is your objective, do you want to help this project move forward or not? -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 18:48 ` Felipe Contreras @ 2013-04-26 18:53 ` Ramkumar Ramachandra 2013-04-26 19:39 ` Felipe Contreras 2013-04-26 19:39 ` Ramkumar Ramachandra 1 sibling, 1 reply; 49+ messages in thread From: Ramkumar Ramachandra @ 2013-04-26 18:53 UTC (permalink / raw) To: Felipe Contreras Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras wrote: > What is your objective, do you want to help this project move forward or not? Forward, please. I want a solution to this persistent problem of conflict though. And I presented one in my previous email: Here's my solution to the problem: maintain your project outside git.git and merge changes in every couple of months or so with a simple email containing a pull URL, addressing Junio. If Junio trusts you enough to put the changes you send into contrib/ after a cursory glance, we're done. Start a separate mailing list for your project/ accept GitHub pull requests via which contributors can send you changes. No more fuss or drama on the git list about this. You can be as stubborn as you want, and we go back to our lives. Everyone wins. I'll probably even contribute small patches once in a while. ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 18:53 ` Ramkumar Ramachandra @ 2013-04-26 19:39 ` Felipe Contreras 2013-04-26 19:56 ` Ramkumar Ramachandra 0 siblings, 1 reply; 49+ messages in thread From: Felipe Contreras @ 2013-04-26 19:39 UTC (permalink / raw) To: Ramkumar Ramachandra Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn On Fri, Apr 26, 2013 at 1:53 PM, Ramkumar Ramachandra <artagnon@gmail.com> wrote: > Felipe Contreras wrote: >> What is your objective, do you want to help this project move forward or not? > > Forward, please. > > I want a solution to this persistent problem of conflict though. And > I presented one in my previous email: > > Here's my solution to the problem: maintain your project outside > git.git and merge changes in every couple of months or so with a > simple email containing a pull URL, addressing Junio. If Junio trusts > you enough to put the changes you send into contrib/ after a cursory > glance, we're done. Start a separate mailing list for your project/ > accept GitHub pull requests via which contributors can send you > changes. No more fuss or drama on the git list about this. You can > be as stubborn as you want, and we go back to our lives. Everyone > wins. I already maintain my own clone outside of git.git[1], and I do already accept pull requests[2], and people have sent me patches directly. The stuff I send to the git mailing list is what I think is ready for merging. But there's only so much stuff I can catch. We all benefit from these patches being reviewed in the git mailing list, nobody has claimed otherwise. You are making the error of assuming that your review was actionable, that I should have done something, fix the commit message I suppose, but I don't think that's important. In contrast, this is how a constructive, valid and helpful review looks like: http://article.gmane.org/gmane.comp.version-control.git/220034 Junio caught a problem I didn't see, I accepted the valid feedback, and I resent with a fix. We all benefit from such interactions, both users, and developers. What's wrong with that? You just got angry that your review didn't turn out to be helpful, is that it? Why do you want to steal helpful review from the users of remote-{bzr,hg}? If that's not the case, please stop doing that. All review is welcome, not all review should be acted upon. Cheers. [1] https://github.com/felipec/git [2] https://github.com/felipec/git/pulls?direction=desc&page=1&sort=created&state=closed -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 19:39 ` Felipe Contreras @ 2013-04-26 19:56 ` Ramkumar Ramachandra 2013-04-26 20:23 ` Felipe Contreras 0 siblings, 1 reply; 49+ messages in thread From: Ramkumar Ramachandra @ 2013-04-26 19:56 UTC (permalink / raw) To: Felipe Contreras Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras wrote: > We all benefit from these patches being reviewed in the git mailing > list, nobody has claimed otherwise. You are making the error of > assuming that your review was actionable, that I should have done > something, fix the commit message I suppose, but I don't think that's > important. What I'm saying is that you can get more eyes. A lot more eyes. If you just write a proper commit message! Why are you hitting everyone's inboxes with such cryptic patches that require either: 1. The reviewer to trust what you've done and move on. 2. The reviewer to do a lot of digging before the patch becomes accessible to her. > You just got angry that your review didn't turn out to be helpful, is > that it? Why do you want to steal helpful review from the users of > remote-{bzr,hg}? If that's not the case, please stop doing that. All > review is welcome, not all review should be acted upon. I'm not angry about anything, or trying to steal anything. What happened: New email. Felipe's remote-hg fixes. Okay, let's look at this. Part 1. What?! [I wrote down what I was thinking as I was reading the email] This is where you _should_ apply reason: justify everything you've done in the patch in your commit message. Why are you so stubborn about not wanting to change your ways despite so many people telling you? Is it your pride*? * Yes, I noticed that you have a huge ego. I consider it an undesirable trait. ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 19:56 ` Ramkumar Ramachandra @ 2013-04-26 20:23 ` Felipe Contreras 2013-04-26 22:10 ` Junio C Hamano 0 siblings, 1 reply; 49+ messages in thread From: Felipe Contreras @ 2013-04-26 20:23 UTC (permalink / raw) To: Ramkumar Ramachandra Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn On Fri, Apr 26, 2013 at 2:56 PM, Ramkumar Ramachandra <artagnon@gmail.com> wrote: > Felipe Contreras wrote: >> We all benefit from these patches being reviewed in the git mailing >> list, nobody has claimed otherwise. You are making the error of >> assuming that your review was actionable, that I should have done >> something, fix the commit message I suppose, but I don't think that's >> important. > > What I'm saying is that you can get more eyes. A lot more eyes. If > you just write a proper commit message! It is a trivial obvious patch that changes very few lines of code, it doesn't need more eyes in my opinion. For the patches that do need eyes I do send descriptive commit messages. And some patches that I don't think need eyes, but I think I could do wrong, I also write descriptive messages. So far, it looks like I was right in thinking this patch didn't need more eyes. And I think my original commit description, which I deleted by mistake was more than enough "Mostly from remote-hg. It's possible that there's a fix to delete files with spaces". Because so far, nobody has pointed out any actual issue, and it's not clear if this patch would benefit from even more eyes... probably won't. > Why are you hitting everyone's inboxes with such cryptic patches that > require either: > 1. The reviewer to trust what you've done and move on. > 2. The reviewer to do a lot of digging before the patch becomes > accessible to her. Because there's no other way to get the changes into git.git. If you wan't I can add "DO NOT REVIEW" in the title, but I think "trivial cleanups" pretty much sums that what I feel, and actually I wouldn't want people to _not_ review the patches, but rather to understand that I think they are trivial, and shouldn't worry too much about them. >> You just got angry that your review didn't turn out to be helpful, is >> that it? Why do you want to steal helpful review from the users of >> remote-{bzr,hg}? If that's not the case, please stop doing that. All >> review is welcome, not all review should be acted upon. > > I'm not angry about anything, or trying to steal anything. Good, so I'll keep sending the patches, because our users benefit from the review. > What happened: New email. Felipe's remote-hg fixes. Okay, let's > look at this. Part 1. What?! [I wrote down what I was thinking as I > was reading the email] Write what you see, not what you feel. Your questions about the code are fine, but making assumptions about what remote-bzr users must be suffering by not having more descriptive commit messages are not. You also assumed that I wanted to send that commit message, when that was not true, I removed a chunk by mistake. In general, you shouldn't make assumptions. > This is where you _should_ apply reason: justify everything you've > done in the patch in your commit message. Why are you so stubborn > about not wanting to change your ways despite so many people telling > you? Is it your pride*? Stop asking these questions, I thought you already agreed this patch was not worth discussing about. If you see *any other* patch that doesn't have a good enough commit message, reply _there_. And if you do want to pursue these questions irrespective of this patch, start a new thread. > * Yes, I noticed that you have a huge ego. I consider it an undesirable trait. I don't think so, but even if I did, it doesn't matter, all that matters is that my arguments are sound and valid, you should concentrate on the ball, not on the man. The fact that I believe my arguments are valid and sound doesn't make me egotistic, it might be that they are actually valid and sound, and I'm simply assessing them correctly. I of course I'm willing to admit otherwise, based on evidence, and reason. Cheers. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 20:23 ` Felipe Contreras @ 2013-04-26 22:10 ` Junio C Hamano 2013-04-26 22:22 ` Felipe Contreras 0 siblings, 1 reply; 49+ messages in thread From: Junio C Hamano @ 2013-04-26 22:10 UTC (permalink / raw) To: Felipe Contreras Cc: Ramkumar Ramachandra, git, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras <felipe.contreras@gmail.com> writes: > Good, so I'll keep sending the patches, because our users benefit from > the review. Just for the record, a patch sent to the list which nobody bothered to read does not really count as reviewed. You can either (1) pace yourself when people are otherwise busy; or (2) send them anyway but not claim "this was sent to the list two weeks ago, nobody complained, so it must be perfect" when it is not picked up after a few weeks. Often (1) is a better strategy, as people who wanted to review but otherwise were busy tend to declare patch bankruptcy after their busy period ends. Also, a reason that a patch goes uncommented is when it is difficult to judge. A patch with code change without sufficient explanation behind the motivation to justify the change, a reviewer finds it much harder to convince himself that the patch is a good change, and it also is much harder to find which part of the change is wrong and offer improvements, compared to a patch with the same change that is justified properly. ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 22:10 ` Junio C Hamano @ 2013-04-26 22:22 ` Felipe Contreras 0 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-26 22:22 UTC (permalink / raw) To: Junio C Hamano Cc: Ramkumar Ramachandra, git, Christophe Simonis, Simon Ruderich, Max Horn On Fri, Apr 26, 2013 at 5:10 PM, Junio C Hamano <gitster@pobox.com> wrote: > Felipe Contreras <felipe.contreras@gmail.com> writes: > >> Good, so I'll keep sending the patches, because our users benefit from >> the review. > > Just for the record, a patch sent to the list which nobody bothered > to read does not really count as reviewed. No, but I did my part, which is sending them for review. > You can either > > (1) pace yourself when people are otherwise busy; or I would, if there was a reason to. > (2) send them anyway but not claim "this was sent to the list two > weeks ago, nobody complained, so it must be perfect" when it is > not picked up after a few weeks. When have I ever done that? > Often (1) is a better strategy, as people who wanted to review but > otherwise were busy tend to declare patch bankruptcy after their > busy period ends. Not for remote-{bzr,hg}. I've yet to see anybody claim they would review the patches thoroughly, if only they were given time. I've yet to see anybody claim they would review the patches thoroughly under any circumstance at all. And by that I mean the patches that really would benefit from reviewing. > Also, a reason that a patch goes uncommented is when it is difficult > to judge. A patch with code change without sufficient explanation > behind the motivation to justify the change, a reviewer finds it > much harder to convince himself that the patch is a good change, and > it also is much harder to find which part of the change is wrong and > offer improvements, compared to a patch with the same change that is > justified properly. Yes, but is that the case *HERE*? And no, single line changes that are trivial and obvious don't count. Show me an important patch that surely would benefit from reviewing that doesn't have sufficient explanation. Show me an important patch that anybody is not convinced is a good patch. In the remote-{hg,bzr} context. If there isn't any, I don't see why remote-{bzr,hg} should slow down. For this patch, I don't care one iota. Cheers. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 18:48 ` Felipe Contreras 2013-04-26 18:53 ` Ramkumar Ramachandra @ 2013-04-26 19:39 ` Ramkumar Ramachandra 1 sibling, 0 replies; 49+ messages in thread From: Ramkumar Ramachandra @ 2013-04-26 19:39 UTC (permalink / raw) To: Felipe Contreras Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras wrote: > If you don't understand the reasoning and history behind remote-bzr, > you might be doing a disservice to everyone by commenting at all. Felipe, I'm trying to help. If you think my review lacked context, you can write me a paragraph/ link me to an email and I will read it. It's not reviewers and submitters "attacking" each other. It's helping out other rational people in the community because you care for their reviews. Don't practice exclusivity and label some people as "not eligible to review". That's not a good way to develop. > Bazaar is a dead project, and there are *real* users suffering as we > speak, bound to eternal SCM torment by evil dictators and political > non-speak. Even the worst of remote-bzr patches are a thousand times > better than what you see in bzr code itself. > > To give you some perspective, one commit broke a branch in the emacs > project, and ever since then people are not able to clone that branch. > This bug has been known for years, and nobody fixes it. Every time > anybody tries to clone that branch, they need a special sequence of > commands. > > They *need* something like remote-bzr to escape the horrendities of > bzr, and all you are doing complaining about a sneaked fix is a > disservice to everyone. Yes, doing such a thing on git.c would not be > particularly great, but wouldn't be horrific either, fortunately we > are not doing that! My God. This is horror story. > Answer me, do you use bzr? No? Do you use remote-bzr? No? Then how in > hell could you possibly have any contextual information to make even a > guess as to what would be the impact of sneaking such a small fix? You > can't. No Felipe, I don't use bzr. ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 21:35 ` Felipe Contreras 2013-04-25 22:01 ` Junio C Hamano @ 2013-04-26 9:32 ` Ramkumar Ramachandra 2013-04-26 18:34 ` Felipe Contreras 2013-04-26 19:19 ` Felipe Contreras 1 sibling, 2 replies; 49+ messages in thread From: Ramkumar Ramachandra @ 2013-04-26 9:32 UTC (permalink / raw) To: Felipe Contreras Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras wrote: > I am helping my fellow developers by replying to the comments they > make when I send the patches for review. Unfortunately, the only > developer other than you that has made any comment at all, Ramkumar > Ramachandra, did so in a bellicose tone, but I replied to all his > comments either way, which where invalid. I've never wanted to pick fights with anyone, and I don't foresee having a desire to do so in the future. I was just saying what was on my mind, which is along the lines of: you have written this patch with the attitude "I know what I'm doing, my users will benefit, and nobody else is going to look at this patch anyway"; I'm worried about what your other patches look like if this is your attitude towards development. Junio is harping about the same thing: the impedance mismatch between you and the rest of us. > The history *is* readable. If anybody has any problems with the commit > messages, the place to mention such problems is IN THE PATCH REVIEW. > Nobody has done that, because either nobody has any problems, or they > are not interested. Either way, there's nothing I can do about it. That's what I've been trying to say over and over again: _why_ are people not reviewing your patches? 0. Because nobody has any problems with them. 1. Because nobody on the git list cares about remote-hg. 2. Because you're stubborn as a mule, and the resulting thread often results in long-winded discussions like this one (which wastes everyone's time). Therefore, the potential reviewer's reasoning is that their review time is better spent elsewhere, where their review is actually appreciated. Hint: it's not (0). If you're claiming that (1) is the case, then why are you posting to the git list and hitting everyone's inboxes? Maintain your project outside git. I'm claiming that it's (2). In which case, it's you who needs changing. > I'm willing to change my ways when there's reason to change my ways, > and so far, nobody has provided any evidence that my commit messages > are indeed lacking, only *opinions*. You want a formal mathematical proof? We operate on opinions, and freeze what we think we all agree with into "community guidelines". > Other people are perfectly fine with them: > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=felipe.contreras So you're now claiming that we're the ones at fault (Peff, Thomas, Junio, and me, among others). Okay, so why are you forcing your changes and opinions down our throats? You're in the wrong community: join a community of people who are more like you (or start your own project), and stop wasting our time. Junio C Hamano wrote: > I do > not agree with Ram at all when he says that developers are more > important than users, and I agree with you that the project exists > for users, and not for developers. On this. If Peff were to suddenly stop working on git one day (because he was frustrated with the community/ development practices), we'd all lose a lot more than if one random end-user switches to using hg for his tiny personal projects. I'm _not_ claiming that there's a split between users and users that are developers (we have one mailing list for everyone, and I like that). What I'm claiming is that we cannot (and should not) pay equal attention to every user of git. Some users are more important than others. Again, that does _not_ mean that we push a change that benefits one important user but breaks everyone else's setup. Ofcourse the project exists for its users; we're not doing research. However, we don't all have to write tutorials to keep in touch with end-users who are completely detached from the development process (our time is better spent elsewhere), or even have an end-user-friendly bug tracker (where the SNR is very low). We don't have to consciously reach out to people we're not connected to directly: if we're all sufficiently connected to the real world, the itches/ bugs worth working on will always find their way to us. We live in a connected world. Yes, I know. You're going to respond to this email arguing about why you're Right and why I (and everyone else) is Wrong, either by quoting what Linus (TM) said and twisting it to mean what you want, belaboring over what you've already said, or something similar. I've given up on you, and I suspect a lot of other people have too. ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 9:32 ` Ramkumar Ramachandra @ 2013-04-26 18:34 ` Felipe Contreras 2013-04-26 19:30 ` Ramkumar Ramachandra 2013-04-26 19:19 ` Felipe Contreras 1 sibling, 1 reply; 49+ messages in thread From: Felipe Contreras @ 2013-04-26 18:34 UTC (permalink / raw) To: Ramkumar Ramachandra Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn On Fri, Apr 26, 2013 at 4:32 AM, Ramkumar Ramachandra <artagnon@gmail.com> wrote: > Felipe Contreras wrote: >> I am helping my fellow developers by replying to the comments they >> make when I send the patches for review. Unfortunately, the only >> developer other than you that has made any comment at all, Ramkumar >> Ramachandra, did so in a bellicose tone, but I replied to all his >> comments either way, which where invalid. > > I've never wanted to pick fights with anyone, and I don't foresee > having a desire to do so in the future. I was just saying what was on > my mind, which is along the lines of: you have written this patch with > the attitude "I know what I'm doing, my users will benefit, and nobody > else is going to look at this patch anyway"; That is an assumption, it's wrong, and it's antagonistic. There's no need for that. > I'm worried about what > your other patches look like if this is your attitude towards > development. More assumptions and hypotheticals. Why don't we limit ourselves to facts and reality? >> The history *is* readable. If anybody has any problems with the commit >> messages, the place to mention such problems is IN THE PATCH REVIEW. >> Nobody has done that, because either nobody has any problems, or they >> are not interested. Either way, there's nothing I can do about it. > > That's what I've been trying to say over and over again: _why_ are > people not reviewing your patches? > > 0. Because nobody has any problems with them. > > 1. Because nobody on the git list cares about remote-hg. > > 2. Because you're stubborn as a mule, and the resulting thread often > results in long-winded discussions like this one (which wastes > everyone's time). Therefore, the potential reviewer's reasoning is > that their review time is better spent elsewhere, where their review > is actually appreciated. > > Hint: it's not (0). > > If you're claiming that (1) is the case, then why are you posting to > the git list and hitting everyone's inboxes? Maintain your project > outside git. > > I'm claiming that it's (2). In which case, it's you who needs changing. This is the false dichotomy fallacy, why does it have to be only one of these reasons? Couldn't it be a mixture of them? Maybe most people don't care about remote-{bzr,hg}, maybe for the ones that do, most don't see any problems in the patches, and maybe the ones that do see problems in the patches don't bring them up, because of various reasons, like for example, they don't see them as major, and would rather fix them themselves later after investigation if they are indeed import problems, or maybe they just don't have time to engage in discussions. Yes, there's a possibility that my stubbornness is a factor, and given their possible lack of time, and possible lack of interested, they choose to not engage. But to claim that *everyone* is in (2), and that there are no other factors that made them land in (2) but my stubbornness is disingenuous at best. What would you think of a scientist that says, oh, "I'm not going to review that paper, because each time I do that, the reviewee defends it, and we end up with long-winded discussions". This scientist doesn't have the right spirit. If you submit a review comment, you should be prepared to do defend it, just like you do when you submit a patch. And you should be prepared to accept that your patch has mistakes, just like you should be prepared to accept that your review has mistakes. In this view, stubbornness is a good thing, because it brings the best in the reviewer, and in the reviewee, and in the end everyone benefits by trying to achieve the higher quality possible. Just like stubbornness is a good thing in science, if both reviwer and reviewee fight for their point of view, only the best science wins, and we all benefit. This is all of course if the stubbornness is warranted, but you haven't claimed that it wasn't, simply that I was stubborn. Well, so what? Isn't that good? Show me where I was unreasonable, show me where I was wrong, not where I was stubborn. One can be stubborn and be right, in fact, when one is right, it's when one has all the more right to be stubborn. If you are not prepared to defend your review, so are others, why to you blame that on me? If you were right, you would be shown to be right. Period. >> I'm willing to change my ways when there's reason to change my ways, >> and so far, nobody has provided any evidence that my commit messages >> are indeed lacking, only *opinions*. > > You want a formal mathematical proof? We operate on opinions, and > freeze what we think we all agree with into "community guidelines". No, we operate in evidence and reason, *not* opinion. Any reasonable person would say "well, I *think* this commit message needs more description, but I don't *know*, I don't have *evidence* for it, so I'm not going to fight to the death, as if I had". Any reasonable person would know the difference between an opinion, and an objective fact. And react accordingly when another person attacks an opinion, which is not a big deal, and when an objective fact is attacked, which is a big deal. >> Other people are perfectly fine with them: >> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=felipe.contreras > > So you're now claiming that we're the ones at fault (Peff, Thomas, > Junio, and me, among others). Okay, so why are you forcing your > changes and opinions down our throats? Where am I doing that? First of all, lets not act like bitching girlfriends arguing about who didn't throw the trash three years ago. We are talking about *remote-bzr*, in fact, the subject is "[PATCH 1/9] remote-bzr: trivial cleanups". *NONE* of this discussion is relevant to that patch. If we go one step above, to remote-helpers in general, nobody has commented *ANYTHING* negative on those patches, you are the first to do so. So how exactly did I managed to shove 71 patches down you throat if everybody complained all the way? Ultimately the decision to merge or not to merge comes to Junio, if you don't like his decision, go complain to him, but I would be prepared with points in time where people complained about these patches, and there are no complains, so you have no ammunition at all whatsoever. If you are talking about something else, FFS, change the subject line. If you want to argue about who didn't take out the trash three years ago, fine, but lets do so clearly in another thread, not this one about a *single trivial patch*. > You're in the wrong community: > join a community of people who are more like you (or start your own > project), and stop wasting our time. And this is how communities die. When everybody thinks the same, and everyone who thinks differently is displaced. A monoculture, a place full of yes-men where nobody criticizes anybody, a circlejerk where everyone palms the back of everyone else. Eventually things go south, and nobody around you understands why. Diversity in a community is healthy. If you don't like people who think differently, *you* have a problem. If you don't like standing up and defending your ideas, *you* have a problem. If you don't like discussing on the basis of evidence and reason, *you* have a problem. Cheers. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 18:34 ` Felipe Contreras @ 2013-04-26 19:30 ` Ramkumar Ramachandra 2013-04-26 19:59 ` Ramkumar Ramachandra 2013-04-26 20:00 ` Felipe Contreras 0 siblings, 2 replies; 49+ messages in thread From: Ramkumar Ramachandra @ 2013-04-26 19:30 UTC (permalink / raw) To: Felipe Contreras Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn [completely off-topic; don't worry, we're just having a friendly chat] Felipe Contreras wrote: > If you are not prepared to defend your review, so are others, why to > you blame that on me? If you were right, you would be shown to be > right. Period. Felipe, there are some things that are worth arguing about for a long time (like the new revision spec I'm proposing in [1]), and others that are not. [1]: http://thread.gmane.org/gmane.comp.version-control.git/222248/focus=222526 > No, we operate in evidence and reason, *not* opinion. Any reasonable > person would say "well, I *think* this commit message needs more > description, but I don't *know*, I don't have *evidence* for it, so > I'm not going to fight to the death, as if I had". Don't you think you're taking reason to an extreme here? Reason is a tool that I use when I want. I don't want reason when I'm browsing Google Art Project or listening to Gentle Giant. Arguments like "is this commit message large enough?" are really not worth the time and effort. > Ultimately the decision to merge or not to merge comes to Junio, if > you don't like his decision, go complain to him, but I would be > prepared with points in time where people complained about these > patches, and there are no complains, so you have no ammunition at all > whatsoever. I have no desire to "attack" you, Felipe. I respect you as a more experienced developer than myself, and am trying to offer constructive criticism. I don't have an ego (or consider myself important to the community). Whatever will happen will happen, with or without me. > And this is how communities die. When everybody thinks the same, and > everyone who thinks differently is displaced. A monoculture, a place > full of yes-men where nobody criticizes anybody, a circlejerk where > everyone palms the back of everyone else. Eventually things go south, > and nobody around you understands why. > > Diversity in a community is healthy. If you don't like people who > think differently, *you* have a problem. If you don't like standing up > and defending your ideas, *you* have a problem. If you don't like > discussing on the basis of evidence and reason, *you* have a problem. Diversity is certainly healthy, and I it would be nice to have you in the community. We just have to find a way to keep the conflict down. ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 19:30 ` Ramkumar Ramachandra @ 2013-04-26 19:59 ` Ramkumar Ramachandra 2013-04-26 20:00 ` Felipe Contreras 1 sibling, 0 replies; 49+ messages in thread From: Ramkumar Ramachandra @ 2013-04-26 19:59 UTC (permalink / raw) To: Felipe Contreras Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn Ramkumar Ramachandra wrote: > Diversity is certainly healthy, and I it would be nice to have you in > the community. We just have to find a way to keep the conflict down. After all, what are we asking for? Better commit messages. Why are you making such a big deal out of it? You want diversity in "length/ form of commit messages"? ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 19:30 ` Ramkumar Ramachandra 2013-04-26 19:59 ` Ramkumar Ramachandra @ 2013-04-26 20:00 ` Felipe Contreras 2013-04-26 20:03 ` Ramkumar Ramachandra 2013-04-26 20:28 ` Ramkumar Ramachandra 1 sibling, 2 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-26 20:00 UTC (permalink / raw) To: Ramkumar Ramachandra Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn On Fri, Apr 26, 2013 at 2:30 PM, Ramkumar Ramachandra <artagnon@gmail.com> wrote: > [completely off-topic; don't worry, we're just having a friendly chat] > > Felipe Contreras wrote: >> If you are not prepared to defend your review, so are others, why to >> you blame that on me? If you were right, you would be shown to be >> right. Period. > > Felipe, there are some things that are worth arguing about for a long > time (like the new revision spec I'm proposing in [1]), and others > that are not. > > [1]: http://thread.gmane.org/gmane.comp.version-control.git/222248/focus=222526 I agree, and I have discussed about issues with diff in the past, unfortunately didn't reach any conclusion. I've tried to follow that thread, but I don't really know what is actually being proposed anymore. If you are so keen in receiving feedback from your fellow developers, you should eventually send an email summarizing the issues and the proposal for everyone to understand. In contrast, I take it you agree this trivial patch is not worth discussing, which I agreed in my first reply. >> No, we operate in evidence and reason, *not* opinion. Any reasonable >> person would say "well, I *think* this commit message needs more >> description, but I don't *know*, I don't have *evidence* for it, so >> I'm not going to fight to the death, as if I had". > > Don't you think you're taking reason to an extreme here? Reason is a > tool that I use when I want. I don't want reason when I'm browsing > Google Art Project or listening to Gentle Giant. Arguments like "is > this commit message large enough?" are really not worth the time and > effort. Reason is not a tool for appreciating art, reason is a tool for discovering truth, and if when arguing you are not interested in what is actually true, I'm not interested in arguing with you. >> Ultimately the decision to merge or not to merge comes to Junio, if >> you don't like his decision, go complain to him, but I would be >> prepared with points in time where people complained about these >> patches, and there are no complains, so you have no ammunition at all >> whatsoever. > > I have no desire to "attack" you, Felipe. I respect you as a more > experienced developer than myself, and am trying to offer constructive > criticism. > > I don't have an ego (or consider myself important to the community). > Whatever will happen will happen, with or without me. I appreciate your criticism, but that doesn't mean I must agree with it. And if I do agree, that doesn't mean I must act upon it. >> And this is how communities die. When everybody thinks the same, and >> everyone who thinks differently is displaced. A monoculture, a place >> full of yes-men where nobody criticizes anybody, a circlejerk where >> everyone palms the back of everyone else. Eventually things go south, >> and nobody around you understands why. >> >> Diversity in a community is healthy. If you don't like people who >> think differently, *you* have a problem. If you don't like standing up >> and defending your ideas, *you* have a problem. If you don't like >> discussing on the basis of evidence and reason, *you* have a problem. > > Diversity is certainly healthy, and I it would be nice to have you in > the community. We just have to find a way to keep the conflict down. A fine way to start is to not rattle away in trivial inconsequential patches. Cheers. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 20:00 ` Felipe Contreras @ 2013-04-26 20:03 ` Ramkumar Ramachandra 2013-04-26 20:28 ` Felipe Contreras 2013-04-26 20:28 ` Ramkumar Ramachandra 1 sibling, 1 reply; 49+ messages in thread From: Ramkumar Ramachandra @ 2013-04-26 20:03 UTC (permalink / raw) To: Felipe Contreras Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras wrote: > A fine way to start is to not rattle away in trivial inconsequential patches. I have something from Linus (TM) this time :) https://lkml.org/lkml/2004/12/20/255 ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 20:03 ` Ramkumar Ramachandra @ 2013-04-26 20:28 ` Felipe Contreras 0 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-26 20:28 UTC (permalink / raw) To: Ramkumar Ramachandra Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn On Fri, Apr 26, 2013 at 3:03 PM, Ramkumar Ramachandra <artagnon@gmail.com> wrote: > Felipe Contreras wrote: >> A fine way to start is to not rattle away in trivial inconsequential patches. > > I have something from Linus (TM) this time :) > > https://lkml.org/lkml/2004/12/20/255 I happen to agree with that, specially in the context of the Linux kernel, but I don't see how that applies here. Linus is talking about trivial patches from an entry-level developer, who has much to learn, and this is one the best ways to do that. But in particular, he is talking about the fact that prominent kernel developers don't spend too much time on these trivial patches from these entry-level developers, and that can be frustrating for these entry-level developers, which can be problematic. Nothing at all related to what we are facing here. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 20:00 ` Felipe Contreras 2013-04-26 20:03 ` Ramkumar Ramachandra @ 2013-04-26 20:28 ` Ramkumar Ramachandra 2013-04-26 20:46 ` Felipe Contreras 1 sibling, 1 reply; 49+ messages in thread From: Ramkumar Ramachandra @ 2013-04-26 20:28 UTC (permalink / raw) To: Felipe Contreras Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras wrote: > If you are so keen in receiving feedback from your fellow developers, > you should eventually send an email summarizing the issues and the > proposal for everyone to understand. Thanks. I'll do that in the morning. > Reason is not a tool for appreciating art, reason is a tool for > discovering truth, and if when arguing you are not interested in what > is actually true, I'm not interested in arguing with you. There is no great truth to be discovered by arguing about the length of commit messages, Felipe. There are some "guidelines" or "axioms" upon which we build reason. If you want to argue till everything breaks down to Peano's Axioms, do Foundations of mathematics or Analytical philosophy. From personal experience, it's much more satisfying than arguing with other humans (who aren't exact creatures). > I appreciate your criticism, but that doesn't mean I must agree with > it. And if I do agree, that doesn't mean I must act upon it. Why not? Am I being unreasonable in asking you to justify your changes, so I can understand what you've done with one quick reading? ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 20:28 ` Ramkumar Ramachandra @ 2013-04-26 20:46 ` Felipe Contreras 0 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-26 20:46 UTC (permalink / raw) To: Ramkumar Ramachandra Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn On Fri, Apr 26, 2013 at 3:28 PM, Ramkumar Ramachandra <artagnon@gmail.com> wrote: >> Reason is not a tool for appreciating art, reason is a tool for >> discovering truth, and if when arguing you are not interested in what >> is actually true, I'm not interested in arguing with you. > > There is no great truth to be discovered by arguing about the length > of commit messages, Felipe. There are some "guidelines" or "axioms" > upon which we build reason. And based on what do you build these guidelines and axioms if not truth? Do you ask a computer to throw a number randomly from 0 to infinite and that shall be the new axiom for what the perfect number of words a commit message should have? No, you determine that based on experience, and convenience. You find a number that convenient to write, not hundreds of pages, and a number that would help the reader if the patch in case a bug in the changes is found on a later time, and that would help reviewers of code find issues, and understand it. But most importantly, the number depends on the complexity of the code changes. Note that I'm not saying on size, because even one-liners can be extremely complex. It's not arbitrary. > If you want to argue till everything > breaks down to Peano's Axioms, do Foundations of mathematics or > Analytical philosophy. From personal experience, it's much more > satisfying than arguing with other humans (who aren't exact > creatures). I do not want to argue the fundamentals of logic and reason, but unfortunately most people don't have a strong grasp on them. So let me simply; truth matters, and how we find truth mattes. Which is why the degree of certainty we have on certain facts matters; you shouldn't act the same about a claim you are 10% sure it's true, than with a claim you are 90% sure. If you are 100% sure my commit messages are too short, then there's no point in arguing with you. Nor if you think it doesn't matter if it's 90%, or 50%, or even 0%. Because it's an opinion, and an opinion doesn't need any facts, or certainty, it just needs a person to hold it, whatever unreasonable or unlikely it is. >> I appreciate your criticism, but that doesn't mean I must agree with >> it. And if I do agree, that doesn't mean I must act upon it. > > Why not? Am I being unreasonable in asking you to justify your > changes, so I can understand what you've done with one quick reading? I did justify everything, I just didn't act the way you wanted. I didn't immediately resend the series with a full description of the changes, because the changes, as I described before, are trivial. I simply dropped the change you had a problem with, and moved on. It's perfectly reasonable. Cheers. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 9:32 ` Ramkumar Ramachandra 2013-04-26 18:34 ` Felipe Contreras @ 2013-04-26 19:19 ` Felipe Contreras 2013-04-26 20:17 ` Ramkumar Ramachandra 1 sibling, 1 reply; 49+ messages in thread From: Felipe Contreras @ 2013-04-26 19:19 UTC (permalink / raw) To: Ramkumar Ramachandra Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn On Fri, Apr 26, 2013 at 4:32 AM, Ramkumar Ramachandra <artagnon@gmail.com> wrote: > Felipe Contreras wrote: > Junio C Hamano wrote: >> I do >> not agree with Ram at all when he says that developers are more >> important than users, and I agree with you that the project exists >> for users, and not for developers. > > On this. > > If Peff were to suddenly stop working on git one day (because he was > frustrated with the community/ development practices), we'd all lose a > lot more than if one random end-user switches to using hg for his tiny > personal projects. Yeah but that's not happening is it? This is yet another hypothetical. Last I checked Peff never threatened to leave the project. Did I miss a memo? The last time somebody announced he was going to leave the project we did what was reasonable; investigate the reasons. And that's what we would do if Peff threatened to leave. But fine, lets assume there's a hypothetical Peff, with hypothetical reasons to leave the project... > I'm _not_ claiming that there's a split between > users and users that are developers (we have one mailing list for > everyone, and I like that). What I'm claiming is that we cannot (and > should not) pay equal attention to every user of git. Some users are > more important than others. Again, that does _not_ mean that we push > a change that benefits one important user but breaks everyone else's > setup. The importance of users changes all the time. The 15 year old kid in Sao Paulo might not be important today, but he might be the single most important contributor ten years from now. Hell, he might even replace Junio as the maintainer. Who are you to decide which users are important, and which are not? > Ofcourse the project exists for its users; we're not doing research. > However, we don't all have to write tutorials to keep in touch with > end-users who are completely detached from the development process > (our time is better spent elsewhere), Maybe we should, and maybe we would see then some areas of improvement. In fact, I have done so, and I do see lots of areas of improvement in git's UI. I agree that there are more important areas, or rather, more fun to work with, but the fact that most git developers don't pay too much attention to the pain of newcomers shows, and it's a very common criticism of git; it's difficult to learn, it doesn't have a consistent UI, many commands don't make sense. And I happen to agree with that claim, but it's not an easy problem to solve, specially when you care about *all* users, both old and new, which we do. We should keep in mind the problems in git's UI for newcomers. There's no reason no to. > or even have an > end-user-friendly bug tracker (where the SNR is very low). We don't > have to consciously reach out to people we're not connected to > directly: if we're all sufficiently connected to the real world, the > itches/ bugs worth working on will always find their way to us. We > live in a connected world. Nobody is claiming we need a bug tracker, there's no point in arguing about that. The rate at which we fix bugs or our tracking of them is not a problem. > Yes, I know. You're going to respond to this email arguing about why > you're Right and why I (and everyone else) is Wrong, either by quoting > what Linus (TM) said and twisting it to mean what you want, belaboring > over what you've already said, or something similar. Where did I twist anything? You can see Linus talk himself: http://www.youtube.com/watch?v=kzKzUBLEzwk Point me exactly where does he say some users are more important than others, in fact, he is saying the opposite, the amount of people that needed the Linux version compatibility flag was really really small, yet they did it, why? Because *all* users matter. Not that it matters what Linus says, what matters is that it's right; the moment you start balkanizing your user base, the moment you start giving some them reason to fork the project. When was the last time Linux was forked? GNOME did exactly that, they said; you, users over there, we don't care about you anymore, what did they do? Fork. They lost so many users they had to revert their decision. Should we willingly and knowingly neglect some git user-base? No, why would you want them to fork? In a way, git's UI has been so bad, that some kind-of-forks have happened, that tells us something; the UI needs some love, fortunately none of those forks worked, which tells us something too; it's not too atrocious. That's not to say we shouldn't fix the UI, we should, in a way that everyone's happy, which is hard, but we will do it, eventually. Cheers. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 19:19 ` Felipe Contreras @ 2013-04-26 20:17 ` Ramkumar Ramachandra 2013-04-26 21:00 ` Felipe Contreras 0 siblings, 1 reply; 49+ messages in thread From: Ramkumar Ramachandra @ 2013-04-26 20:17 UTC (permalink / raw) To: Felipe Contreras Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras wrote: > The importance of users changes all the time. The 15 year old kid in > Sao Paulo might not be important today, but he might be the single > most important contributor ten years from now. Hell, he might even > replace Junio as the maintainer. Yes, they do. Did I say that they don't change? > Where did I twist anything? You can see Linus talk himself: > http://www.youtube.com/watch?v=kzKzUBLEzwk Yes, I watched the talk when you posted the link last time. And yes, I learnt something. > Should we willingly and knowingly neglect some git user-base? No, why > would you want them to fork? In a way, git's UI has been so bad, that > some kind-of-forks have happened, that tells us something; the UI > needs some love, fortunately none of those forks worked, which tells > us something too; it's not too atrocious. No, we should never neglect. I believe in including everyone. In fact I take it to an extreme: on many instances, I have pointed out what I want specifically, and asked for a configuration option if it's not necessarily a sane default. Git is a toolkit, and should be loaded with features that even a few users want. > That's not to say we shouldn't fix the UI, we should, in a way that > everyone's happy, which is hard, but we will do it, eventually. On this, I think the way forward is complete-implicit'ness via configuration variables. I recently wrote remote.pushdefault to simply 'git push', and proposed 'git push +ref1 ref2 ref3' to automatically push to the correct pushdefaults (but that proposal was rejected). ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-26 20:17 ` Ramkumar Ramachandra @ 2013-04-26 21:00 ` Felipe Contreras 0 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-26 21:00 UTC (permalink / raw) To: Ramkumar Ramachandra Cc: Junio C Hamano, git, Christophe Simonis, Simon Ruderich, Max Horn On Fri, Apr 26, 2013 at 3:17 PM, Ramkumar Ramachandra <artagnon@gmail.com> wrote: > Felipe Contreras wrote: >> The importance of users changes all the time. The 15 year old kid in >> Sao Paulo might not be important today, but he might be the single >> most important contributor ten years from now. Hell, he might even >> replace Junio as the maintainer. > > Yes, they do. Did I say that they don't change? But you implied we shouldn't care about Thiago (our hypothetical future overlord), because he is among the users we should't care for (right now). >> Should we willingly and knowingly neglect some git user-base? No, why >> would you want them to fork? In a way, git's UI has been so bad, that >> some kind-of-forks have happened, that tells us something; the UI >> needs some love, fortunately none of those forks worked, which tells >> us something too; it's not too atrocious. > > No, we should never neglect. I believe in including everyone. In > fact I take it to an extreme: on many instances, I have pointed out > what I want specifically, and asked for a configuration option if it's > not necessarily a sane default. Git is a toolkit, and should be > loaded with features that even a few users want. > >> That's not to say we shouldn't fix the UI, we should, in a way that >> everyone's happy, which is hard, but we will do it, eventually. > > On this, I think the way forward is complete-implicit'ness via > configuration variables. I recently wrote remote.pushdefault to > simply 'git push', and proposed 'git push +ref1 ref2 ref3' to > automatically push to the correct pushdefaults (but that proposal was > rejected). Indeed, I learned about that, and I tried to use it, but I think there's a lot that is missing, and I don't know myself what would be ideal. I'm starting to think that a branch should have two upstreams; one that is used for rebasing, and another that is used for pushing. But I'm not sure. Eventually, I would like to do 'git push' and I would push different branches to different repositories in different destination branches in a way that requires multiple commands right now 'git push github fc/remote-old/hg:fc/remote/hg', 'git push --prune backup refs/heads/*:refs/heads/* refs/tags/*:refs/tags/*'. And to figure things out I'm also helping; I added the --prune option to push, and I added color to visualize upstream branches in 'git branch'. But I don't think any of those are as important as having a proper 'git stage' command, and getting rid of --cached and --index, which will be a huge effort, but would pay even bigger dividends. Step by step. Cheers. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 18:19 ` Ramkumar Ramachandra 2013-04-25 19:20 ` Felipe Contreras @ 2013-04-25 19:29 ` Stefano Lattarini 2013-04-25 19:33 ` Felipe Contreras 1 sibling, 1 reply; 49+ messages in thread From: Stefano Lattarini @ 2013-04-25 19:29 UTC (permalink / raw) To: Ramkumar Ramachandra Cc: Felipe Contreras, git, Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn On 04/25/2013 08:19 PM, Ramkumar Ramachandra wrote: > Felipe Contreras wrote: >> diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr >> index aa7bc97..82bf7c7 100755 >> --- a/contrib/remote-helpers/git-remote-bzr >> +++ b/contrib/remote-helpers/git-remote-bzr >> @@ -94,7 +94,7 @@ class Marks: >> return self.last_mark >> >> def is_marked(self, rev): >> - return self.marks.has_key(rev) >> + return rev in self.marks > > Why? Is the new form faster than the older one? > I think the has_key() method is "deprecated" in modern python, and the 'key in dict' usage is more idiomatic. >> @@ -224,7 +224,7 @@ def export_files(tree, files): >> else: >> mode = '100644' >> >> - # is the blog already exported? >> + # is the blob already exported? > > What is this? Whitespace? > Typofix: s/blog/blob/ >> @@ -521,7 +521,7 @@ def c_style_unescape(string): >> return string >> >> def parse_commit(parser): >> - global marks, blob_marks, bmarks, parsed_refs >> + global marks, blob_marks, parsed_refs > > How is this trivial? You just removed one argument. > Maybe bmarks was no longer used there as a global variable (left-over from previous patches?), so there is no longer any need to declare it global. >> @@ -555,7 +555,7 @@ def parse_commit(parser): >> mark = int(mark_ref[1:]) >> f = { 'mode' : m, 'data' : blob_marks[mark] } >> elif parser.check('D'): >> - t, path = line.split(' ') >> + t, path = line.split(' ', 1) > > How on earth is this trivial? It changes the entire meaning! > Indeed, that should best go in a separate path with a proper explanation in the commit message. >> @@ -643,6 +643,7 @@ def do_export(parser): >> wt = repo.bzrdir.open_workingtree() >> wt.update() >> print "ok %s" % ref >> + > > Whitespace? > Isn't that obvious? > I'm outraged by this. What kind of changes are you pushing to > remote-hg? A "trivial cleanups" bundling miscellaneous changes, with > no commit message? Why don't you just squash everything into one > "miscellaneous changes" patch? > I have no opinion on this, so I won't comment. Regard, Stefano ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 1/9] remote-bzr: trivial cleanups 2013-04-25 19:29 ` Stefano Lattarini @ 2013-04-25 19:33 ` Felipe Contreras 0 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 19:33 UTC (permalink / raw) To: Stefano Lattarini Cc: Ramkumar Ramachandra, git, Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn On Thu, Apr 25, 2013 at 2:29 PM, Stefano Lattarini <stefano.lattarini@gmail.com> wrote: > On 04/25/2013 08:19 PM, Ramkumar Ramachandra wrote: >>> @@ -521,7 +521,7 @@ def c_style_unescape(string): >>> return string >>> >>> def parse_commit(parser): >>> - global marks, blob_marks, bmarks, parsed_refs >>> + global marks, blob_marks, parsed_refs >> >> How is this trivial? You just removed one argument. >> > Maybe bmarks was no longer used there as a global variable > (left-over from previous patches?), so there is no longer any > need to declare it global. Even more, it never was used, it was a mistake carried when copying this method from remote-hg; we don't have bookmarks in bazaar. And bmarks wasn't even used in this method in remote-hg either =/ But it would be obvious that it was not used once one ran the tests and they passed, which they do. Cheers. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* [PATCH 2/9] remote-hg: remove extra check 2013-04-25 11:20 [PATCH 0/9] remote-helpers: fixes and cleanups Felipe Contreras 2013-04-25 11:20 ` [PATCH 1/9] remote-bzr: trivial cleanups Felipe Contreras @ 2013-04-25 11:20 ` Felipe Contreras 2013-04-25 18:23 ` Ramkumar Ramachandra 2013-04-25 11:20 ` [PATCH 3/9] remote-bzr: fix bad state issue Felipe Contreras ` (6 subsequent siblings) 8 siblings, 1 reply; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 11:20 UTC (permalink / raw) To: git Cc: Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn, Felipe Contreras Not needed since we use xrange ourselves. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- contrib/remote-helpers/git-remote-hg | 4 ---- 1 file changed, 4 deletions(-) diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg index 5481331..0b7c81f 100755 --- a/contrib/remote-helpers/git-remote-hg +++ b/contrib/remote-helpers/git-remote-hg @@ -332,10 +332,6 @@ def export_ref(repo, name, kind, head): ename = '%s/%s' % (kind, name) tip = marks.get_tip(ename) - # mercurial takes too much time checking this - if tip and tip == head.rev(): - # nothing to do - return revs = xrange(tip, head.rev() + 1) count = 0 -- 1.8.2.1 ^ permalink raw reply related [flat|nested] 49+ messages in thread
* Re: [PATCH 2/9] remote-hg: remove extra check 2013-04-25 11:20 ` [PATCH 2/9] remote-hg: remove extra check Felipe Contreras @ 2013-04-25 18:23 ` Ramkumar Ramachandra 2013-04-25 19:22 ` Felipe Contreras 0 siblings, 1 reply; 49+ messages in thread From: Ramkumar Ramachandra @ 2013-04-25 18:23 UTC (permalink / raw) To: Felipe Contreras Cc: git, Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras wrote: > diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg > index 5481331..0b7c81f 100755 > --- a/contrib/remote-helpers/git-remote-hg > +++ b/contrib/remote-helpers/git-remote-hg > @@ -332,10 +332,6 @@ def export_ref(repo, name, kind, head): > ename = '%s/%s' % (kind, name) > tip = marks.get_tip(ename) > > - # mercurial takes too much time checking this > - if tip and tip == head.rev(): > - # nothing to do > - return > revs = xrange(tip, head.rev() + 1) I'm surprised these four lines were even there in a previous revision. Again, you changed the meaning: if xrange() returns an empty range, you must return, by extension. ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 2/9] remote-hg: remove extra check 2013-04-25 18:23 ` Ramkumar Ramachandra @ 2013-04-25 19:22 ` Felipe Contreras 0 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 19:22 UTC (permalink / raw) To: Ramkumar Ramachandra Cc: git, Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn On Thu, Apr 25, 2013 at 1:23 PM, Ramkumar Ramachandra <artagnon@gmail.com> wrote: > Felipe Contreras wrote: >> diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg >> index 5481331..0b7c81f 100755 >> --- a/contrib/remote-helpers/git-remote-hg >> +++ b/contrib/remote-helpers/git-remote-hg >> @@ -332,10 +332,6 @@ def export_ref(repo, name, kind, head): >> ename = '%s/%s' % (kind, name) >> tip = marks.get_tip(ename) >> >> - # mercurial takes too much time checking this >> - if tip and tip == head.rev(): >> - # nothing to do >> - return >> revs = xrange(tip, head.rev() + 1) > > I'm surprised these four lines were even there in a previous revision. > Again, you changed the meaning: if xrange() returns an empty range, > you must return, by extension. I'm not going to go back in history, but we were not always using xrange, but the mercurial API helper, which was dead slow, and in the end did basically an xrange(). -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* [PATCH 3/9] remote-bzr: fix bad state issue 2013-04-25 11:20 [PATCH 0/9] remote-helpers: fixes and cleanups Felipe Contreras 2013-04-25 11:20 ` [PATCH 1/9] remote-bzr: trivial cleanups Felipe Contreras 2013-04-25 11:20 ` [PATCH 2/9] remote-hg: remove extra check Felipe Contreras @ 2013-04-25 11:20 ` Felipe Contreras 2013-04-25 11:20 ` [PATCH 4/9] remote-bzr: add support to push URLs Felipe Contreras ` (5 subsequent siblings) 8 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 11:20 UTC (permalink / raw) To: git Cc: Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn, Felipe Contreras Carried from remote-hg. The problem reportedly happened after doing a push that fails, the abort causes the state of remote-hg to go bad, this happens because remote-hg's marks are not stored, but 'git fast-export' marks are. Ensure that the marks are _always_ stored. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- contrib/remote-helpers/git-remote-bzr | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr index 82bf7c7..84734c7 100755 --- a/contrib/remote-helpers/git-remote-bzr +++ b/contrib/remote-helpers/git-remote-bzr @@ -32,6 +32,7 @@ import os import json import re import StringIO +import atexit NAME_RE = re.compile('^([^<>]+)') AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$') @@ -728,6 +729,7 @@ def main(args): blob_marks = {} parsed_refs = {} files_cache = {} + marks = None gitdir = os.environ['GIT_DIR'] dirname = os.path.join(gitdir, 'bzr', alias) @@ -754,6 +756,10 @@ def main(args): die('unhandled command: %s' % line) sys.stdout.flush() +def bye(): + if not marks: + return marks.store() +atexit.register(bye) sys.exit(main(sys.argv)) -- 1.8.2.1 ^ permalink raw reply related [flat|nested] 49+ messages in thread
* [PATCH 4/9] remote-bzr: add support to push URLs 2013-04-25 11:20 [PATCH 0/9] remote-helpers: fixes and cleanups Felipe Contreras ` (2 preceding siblings ...) 2013-04-25 11:20 ` [PATCH 3/9] remote-bzr: fix bad state issue Felipe Contreras @ 2013-04-25 11:20 ` Felipe Contreras 2013-04-25 11:20 ` [PATCH 5/9] remote-hg: use hashlib instead of hg sha1 util Felipe Contreras ` (4 subsequent siblings) 8 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 11:20 UTC (permalink / raw) To: git Cc: Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn, Felipe Contreras Just like in remote-hg. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- contrib/remote-helpers/git-remote-bzr | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr index 84734c7..d6319d6 100755 --- a/contrib/remote-helpers/git-remote-bzr +++ b/contrib/remote-helpers/git-remote-bzr @@ -32,7 +32,7 @@ import os import json import re import StringIO -import atexit +import atexit, shutil, hashlib NAME_RE = re.compile('^([^<>]+)') AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$') @@ -719,11 +719,11 @@ def main(args): global blob_marks global parsed_refs global files_cache + global is_tmp alias = args[1] url = args[2] - prefix = 'refs/bzr/%s' % alias tags = {} filenodes = {} blob_marks = {} @@ -731,6 +731,13 @@ def main(args): files_cache = {} marks = None + if alias[5:] == url: + is_tmp = True + alias = hashlib.sha1(alias).hexdigest() + else: + is_tmp = False + + prefix = 'refs/bzr/%s' % alias gitdir = os.environ['GIT_DIR'] dirname = os.path.join(gitdir, 'bzr', alias) @@ -759,7 +766,10 @@ def main(args): def bye(): if not marks: return - marks.store() + if not is_tmp: + marks.store() + else: + shutil.rmtree(dirname) atexit.register(bye) sys.exit(main(sys.argv)) -- 1.8.2.1 ^ permalink raw reply related [flat|nested] 49+ messages in thread
* [PATCH 5/9] remote-hg: use hashlib instead of hg sha1 util 2013-04-25 11:20 [PATCH 0/9] remote-helpers: fixes and cleanups Felipe Contreras ` (3 preceding siblings ...) 2013-04-25 11:20 ` [PATCH 4/9] remote-bzr: add support to push URLs Felipe Contreras @ 2013-04-25 11:20 ` Felipe Contreras 2013-04-25 18:25 ` Ramkumar Ramachandra 2013-04-25 11:20 ` [PATCH 6/9] remote-bzr: store converted URL Felipe Contreras ` (3 subsequent siblings) 8 siblings, 1 reply; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 11:20 UTC (permalink / raw) To: git Cc: Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn, Felipe Contreras To be in sync with remote-bzr. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- contrib/remote-helpers/git-remote-hg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg index 0b7c81f..99abda4 100755 --- a/contrib/remote-helpers/git-remote-hg +++ b/contrib/remote-helpers/git-remote-hg @@ -22,6 +22,7 @@ import shutil import subprocess import urllib import atexit +import hashlib # # If you want to switch to hg-git compatibility mode: @@ -830,7 +831,7 @@ def main(args): if alias[4:] == url: is_tmp = True - alias = util.sha1(alias).hexdigest() + alias = hashlib.sha1(alias).hexdigest() else: is_tmp = False -- 1.8.2.1 ^ permalink raw reply related [flat|nested] 49+ messages in thread
* Re: [PATCH 5/9] remote-hg: use hashlib instead of hg sha1 util 2013-04-25 11:20 ` [PATCH 5/9] remote-hg: use hashlib instead of hg sha1 util Felipe Contreras @ 2013-04-25 18:25 ` Ramkumar Ramachandra 2013-04-25 19:30 ` Felipe Contreras 0 siblings, 1 reply; 49+ messages in thread From: Ramkumar Ramachandra @ 2013-04-25 18:25 UTC (permalink / raw) To: Felipe Contreras Cc: git, Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn Felipe Contreras wrote: > To be in sync with remote-bzr. Huh? Why do you have to be in sync with remote-bzr? Are you sharing code between remote-hg and remote-bzr? > @@ -830,7 +831,7 @@ def main(args): > > if alias[4:] == url: > is_tmp = True > - alias = util.sha1(alias).hexdigest() > + alias = hashlib.sha1(alias).hexdigest() Did you eve bother justifying this change with a line in the commit message? How is the new form different from the old form? ^ permalink raw reply [flat|nested] 49+ messages in thread
* Re: [PATCH 5/9] remote-hg: use hashlib instead of hg sha1 util 2013-04-25 18:25 ` Ramkumar Ramachandra @ 2013-04-25 19:30 ` Felipe Contreras 0 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 19:30 UTC (permalink / raw) To: Ramkumar Ramachandra Cc: git, Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn On Thu, Apr 25, 2013 at 1:25 PM, Ramkumar Ramachandra <artagnon@gmail.com> wrote: > Felipe Contreras wrote: >> To be in sync with remote-bzr. > > Huh? Why do you have to be in sync with remote-bzr? Are you sharing > code between remote-hg and remote-bzr? We don't have to. >> @@ -830,7 +831,7 @@ def main(args): >> >> if alias[4:] == url: >> is_tmp = True >> - alias = util.sha1(alias).hexdigest() >> + alias = hashlib.sha1(alias).hexdigest() > > Did you eve bother justifying this change with a line in the commit > message? How is the new form different from the old form? Why would it be any difference? It's a hex version of the SHA-1 digest. It would be the same in every language and every tool. And a bit of context: historically the reason I started remote-bzr was to show that we didn't need the *huge* infrastructure that is sitting git_remote_helpers, which is nothing compared to what was prepared to be merged for msysgit's remote-hg. I wrote it as a proof-of-concept to show we didn't need a framework, and if we do, it would only be clear after having _two_ remote helpers, which we now do. It might make sense to refactor the common parts into a framework later on, so having them in sync as much as it's reasonably possible makes sense. But if even if it wasn't, there's nothing wrong with this patch. Also, who knows, maybe old versions of mercurial don't have util.sha1(), or maybe newer ones will move it, who knows. Cheers. -- Felipe Contreras ^ permalink raw reply [flat|nested] 49+ messages in thread
* [PATCH 6/9] remote-bzr: store converted URL 2013-04-25 11:20 [PATCH 0/9] remote-helpers: fixes and cleanups Felipe Contreras ` (4 preceding siblings ...) 2013-04-25 11:20 ` [PATCH 5/9] remote-hg: use hashlib instead of hg sha1 util Felipe Contreras @ 2013-04-25 11:20 ` Felipe Contreras 2013-04-25 11:20 ` [PATCH 7/9] remote-hg: use python urlparse Felipe Contreras ` (2 subsequent siblings) 8 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 11:20 UTC (permalink / raw) To: git Cc: Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn, Felipe Contreras Mercurial might convert the URL to something more appropriate, like an absolute path. Lets store that instead of the original URL, which won't work from a different working directory if it's relative. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- contrib/remote-helpers/git-remote-bzr | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr index d6319d6..3d3b1c1 100755 --- a/contrib/remote-helpers/git-remote-bzr +++ b/contrib/remote-helpers/git-remote-bzr @@ -32,7 +32,7 @@ import os import json import re import StringIO -import atexit, shutil, hashlib +import atexit, shutil, hashlib, urlparse, subprocess NAME_RE = re.compile('^([^<>]+)') AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$') @@ -713,6 +713,14 @@ def get_repo(url, alias): return branch +def fix_path(alias, orig_url): + url = urlparse.urlparse(orig_url, 'file') + if url.scheme != 'file' or os.path.isabs(url.path): + return + abs_url = urlparse.urljoin("%s/" % os.getcwd(), orig_url) + cmd = ['git', 'config', 'remote.%s.url' % alias, "bzr::%s" % abs_url] + subprocess.call(cmd) + def main(args): global marks, prefix, dirname global tags, filenodes @@ -741,6 +749,9 @@ def main(args): gitdir = os.environ['GIT_DIR'] dirname = os.path.join(gitdir, 'bzr', alias) + if not is_tmp: + fix_path(alias, url) + if not os.path.exists(dirname): os.makedirs(dirname) -- 1.8.2.1 ^ permalink raw reply related [flat|nested] 49+ messages in thread
* [PATCH 7/9] remote-hg: use python urlparse 2013-04-25 11:20 [PATCH 0/9] remote-helpers: fixes and cleanups Felipe Contreras ` (5 preceding siblings ...) 2013-04-25 11:20 ` [PATCH 6/9] remote-bzr: store converted URL Felipe Contreras @ 2013-04-25 11:20 ` Felipe Contreras 2013-04-25 11:20 ` [PATCH 8/9] remote-bzr: tell bazaar to be quiet Felipe Contreras 2013-04-25 11:20 ` [PATCH 9/9] remote-bzr: strip extra newline Felipe Contreras 8 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 11:20 UTC (permalink / raw) To: git Cc: Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn, Felipe Contreras It's simpler, and we don't need to depend on certain Mercurial versions. Also, now we don't update the URL if 'file://' is not present. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- contrib/remote-helpers/git-remote-hg | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg index 99abda4..67c3074 100755 --- a/contrib/remote-helpers/git-remote-hg +++ b/contrib/remote-helpers/git-remote-hg @@ -12,7 +12,7 @@ # For remote repositories a local clone is stored in # "$GIT_DIR/hg/origin/clone/.hg/". -from mercurial import hg, ui, bookmarks, context, util, encoding, node, error +from mercurial import hg, ui, bookmarks, context, encoding, node, error import re import sys @@ -22,7 +22,7 @@ import shutil import subprocess import urllib import atexit -import hashlib +import urlparse, hashlib # # If you want to switch to hg-git compatibility mode: @@ -788,11 +788,11 @@ def do_export(parser): print def fix_path(alias, repo, orig_url): - repo_url = util.url(repo.url()) - url = util.url(orig_url) - if str(url) == str(repo_url): + url = urlparse.urlparse(orig_url, 'file') + if url.scheme != 'file' or os.path.isabs(url.path): return - cmd = ['git', 'config', 'remote.%s.url' % alias, "hg::%s" % repo_url] + abs_url = urlparse.urljoin("%s/" % os.getcwd(), orig_url) + cmd = ['git', 'config', 'remote.%s.url' % alias, "hg::%s" % abs_url] subprocess.call(cmd) def main(args): -- 1.8.2.1 ^ permalink raw reply related [flat|nested] 49+ messages in thread
* [PATCH 8/9] remote-bzr: tell bazaar to be quiet 2013-04-25 11:20 [PATCH 0/9] remote-helpers: fixes and cleanups Felipe Contreras ` (6 preceding siblings ...) 2013-04-25 11:20 ` [PATCH 7/9] remote-hg: use python urlparse Felipe Contreras @ 2013-04-25 11:20 ` Felipe Contreras 2013-04-25 11:20 ` [PATCH 9/9] remote-bzr: strip extra newline Felipe Contreras 8 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 11:20 UTC (permalink / raw) To: git Cc: Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn, Felipe Contreras Otherwise we get notification, progress bars, and what not. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- contrib/remote-helpers/git-remote-bzr | 3 +++ 1 file changed, 3 insertions(+) diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr index 3d3b1c1..19668a9 100755 --- a/contrib/remote-helpers/git-remote-bzr +++ b/contrib/remote-helpers/git-remote-bzr @@ -26,6 +26,7 @@ bzrlib.plugin.load_plugins() import bzrlib.generate_ids import bzrlib.transport import bzrlib.errors +import bzrlib.ui import sys import os @@ -755,6 +756,8 @@ def main(args): if not os.path.exists(dirname): os.makedirs(dirname) + bzrlib.ui.ui_factory.be_quiet(True) + repo = get_repo(url, alias) marks_path = os.path.join(dirname, 'marks-int') -- 1.8.2.1 ^ permalink raw reply related [flat|nested] 49+ messages in thread
* [PATCH 9/9] remote-bzr: strip extra newline 2013-04-25 11:20 [PATCH 0/9] remote-helpers: fixes and cleanups Felipe Contreras ` (7 preceding siblings ...) 2013-04-25 11:20 ` [PATCH 8/9] remote-bzr: tell bazaar to be quiet Felipe Contreras @ 2013-04-25 11:20 ` Felipe Contreras 8 siblings, 0 replies; 49+ messages in thread From: Felipe Contreras @ 2013-04-25 11:20 UTC (permalink / raw) To: git Cc: Junio C Hamano, Christophe Simonis, Simon Ruderich, Max Horn, Felipe Contreras It's added by fast-export, the user didn't type it. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- contrib/remote-helpers/git-remote-bzr | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr index 19668a9..8c316fe 100755 --- a/contrib/remote-helpers/git-remote-bzr +++ b/contrib/remote-helpers/git-remote-bzr @@ -549,6 +549,10 @@ def parse_commit(parser): parents.append(parser.get_mark()) parser.next() + # fast-export adds an extra newline + if data[-1] == '\n': + data = data[:-1] + files = {} for line in parser: -- 1.8.2.1 ^ permalink raw reply related [flat|nested] 49+ messages in thread
end of thread, other threads:[~2013-04-26 22:22 UTC | newest] Thread overview: 49+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-04-25 11:20 [PATCH 0/9] remote-helpers: fixes and cleanups Felipe Contreras 2013-04-25 11:20 ` [PATCH 1/9] remote-bzr: trivial cleanups Felipe Contreras 2013-04-25 18:19 ` Ramkumar Ramachandra 2013-04-25 19:20 ` Felipe Contreras 2013-04-25 20:30 ` Thomas Rast 2013-04-25 20:52 ` Felipe Contreras 2013-04-25 21:37 ` Junio C Hamano 2013-04-25 21:49 ` Felipe Contreras 2013-04-25 20:36 ` Junio C Hamano 2013-04-25 21:35 ` Felipe Contreras 2013-04-25 22:01 ` Junio C Hamano 2013-04-25 22:58 ` Felipe Contreras 2013-04-25 23:11 ` Junio C Hamano 2013-04-26 1:19 ` Felipe Contreras 2013-04-26 12:19 ` Ramkumar Ramachandra 2013-04-26 18:48 ` Felipe Contreras 2013-04-26 18:53 ` Ramkumar Ramachandra 2013-04-26 19:39 ` Felipe Contreras 2013-04-26 19:56 ` Ramkumar Ramachandra 2013-04-26 20:23 ` Felipe Contreras 2013-04-26 22:10 ` Junio C Hamano 2013-04-26 22:22 ` Felipe Contreras 2013-04-26 19:39 ` Ramkumar Ramachandra 2013-04-26 9:32 ` Ramkumar Ramachandra 2013-04-26 18:34 ` Felipe Contreras 2013-04-26 19:30 ` Ramkumar Ramachandra 2013-04-26 19:59 ` Ramkumar Ramachandra 2013-04-26 20:00 ` Felipe Contreras 2013-04-26 20:03 ` Ramkumar Ramachandra 2013-04-26 20:28 ` Felipe Contreras 2013-04-26 20:28 ` Ramkumar Ramachandra 2013-04-26 20:46 ` Felipe Contreras 2013-04-26 19:19 ` Felipe Contreras 2013-04-26 20:17 ` Ramkumar Ramachandra 2013-04-26 21:00 ` Felipe Contreras 2013-04-25 19:29 ` Stefano Lattarini 2013-04-25 19:33 ` Felipe Contreras 2013-04-25 11:20 ` [PATCH 2/9] remote-hg: remove extra check Felipe Contreras 2013-04-25 18:23 ` Ramkumar Ramachandra 2013-04-25 19:22 ` Felipe Contreras 2013-04-25 11:20 ` [PATCH 3/9] remote-bzr: fix bad state issue Felipe Contreras 2013-04-25 11:20 ` [PATCH 4/9] remote-bzr: add support to push URLs Felipe Contreras 2013-04-25 11:20 ` [PATCH 5/9] remote-hg: use hashlib instead of hg sha1 util Felipe Contreras 2013-04-25 18:25 ` Ramkumar Ramachandra 2013-04-25 19:30 ` Felipe Contreras 2013-04-25 11:20 ` [PATCH 6/9] remote-bzr: store converted URL Felipe Contreras 2013-04-25 11:20 ` [PATCH 7/9] remote-hg: use python urlparse Felipe Contreras 2013-04-25 11:20 ` [PATCH 8/9] remote-bzr: tell bazaar to be quiet Felipe Contreras 2013-04-25 11:20 ` [PATCH 9/9] remote-bzr: strip extra newline Felipe Contreras
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).