threads / discuss / 1386

Re: Status of git.git repository

Subject: Re: Status of git.git repository

## tl;dr

96 messages between Aug 1, 2005 and Jan 12, 2007.

replies: 95people: 15as markdown or json

Horst von Brand· Aug 1, 2005, 03:29 UTC · lore
Junio C Hamano <junkio@cox.net> wrote:
[...]
Show 5 quoted lines
> By the way, do people mind my posting my own patches to the
> list?  I keep the same in the "pu" (proposed updates) branch, so
> if the list readers think I am just adding noise to the list
> traffic, I would stop doing so, and instead just invite
> interested people to browse the "pu" branch.

It's fine with me for you to post your patches here. I'd hope that by posting your patches get more review (and might spark ideas elsewhere). I.e., open source development, Linus style.

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Horst von Brand· Aug 8, 2005, 03:18 UTC · lore

Re: GIT 0.99.4 (preview)

My proposed patch, the description as is is misleading.

The rest of the .spec file looks sane (yes, I've built my share of RPMs over the years).

diff --git a/git-core.spec.in b/git-core.spec.in
--- a/git-core.spec.in
+++ b/git-core.spec.in
@@ -2,7 +2,7 @@
 Name: 		git-core
 Version: 	@@VERSION@@
 Release: 	1
-Vendor: 	Linus Torvalds <torvalds@osdl.org>
+Vendor: 	Junio C Hamano <junkio@cox.net>
 Summary:  	Git core and tools
 License: 	GPL
 Group: 		Development/Tools
@@ -13,22 +13,23 @@ BuildRoot:	%{_tmppath}/%{name}-%{version
 Prereq: 	sh-utils, diffutils, rsync, rcs, mktemp >= 1.5
 
 %description
-GIT comes in two layers. The bottom layer is merely an extremely fast
-and flexible filesystem-based database designed to store directory trees
-with regard to their history. The top layer is a SCM-like tool which
-enables human beings to work with the database in a manner to a degree
-similar to other SCM tools (like CVS, BitKeeper or Monotone).
+This is a stupid (but extremely fast) directory content manager.  It
+doesn't do a whole lot, but what it _does_ do is track directory
+contents efficiently. It is intended to be the base of an efficient,
+distributed source code management system. This package includes
+rudimentary tools that can be used as a SCM, but you should look
+elsewhere for tools for ordinary humans layered on top of this.
 
 %prep
 %setup -q
 
 %build
-
 make prefix=%{_prefix} all %{!?_without_docs: doc}
 
 %install
 rm -rf $RPM_BUILD_ROOT
-make dest=$RPM_BUILD_ROOT prefix=%{_prefix} mandir=%{_mandir} install install-tools %{!?_without_docs: install-doc}
+make dest=$RPM_BUILD_ROOT prefix=%{_prefix} mandir=%{_mandir} \
+     install install-tools %{!?_without_docs: install-doc}
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -43,7 +44,13 @@ rm -rf $RPM_BUILD_ROOT
 %{!?_without_docs: %{_mandir}/man7/*.7.gz}
 
 %changelog
+* Sun Aug 07 2005 Horst H. von Brand <vonbrand@inf.utfsm.cl>
+- Redid the description
+- Cut overlong make line, loosened changelog a bit
+- I think Junio (or perhaps OSDL?) should be vendor...
+
 * Thu Jul 14 2005 Eric Biederman <ebiederm@xmission.com>
 - Add the man pages, and the --without docs build option
+
 * Wed Jul 7 2005 Chris Wright <chris@osdl.org>
 - initial git spec file
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Horst von Brand· Aug 10, 2005, 02:20 UTC · lore

Re: Sanity check of git-commit patch, was Re: [PATCH] Making CFLAGS compilant with GNU Coding Standards

Junio C Hamano <junkio@cox.net> wrote:
Show 13 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> >> True.  My bad old habit.
> >
> > An elegant method to do that:
> >
> > case --some-long-option in "$1"*) ..; esac
> 
> You are almost correct, but you need to realize that I generate
> that long "case -s|--s|--so|--som|..." chain using a script that
> takes all potential option names as its arguments, and makes
> case arms that contain only unambiguous ones, so that I can
> handle --some-long-option and --some-other-long-option sensibly.
My head spins....
Isn't it easier to just use getopt(1)?
> Also you forgot to grok --some-option-with-args=* in your
> version ;-).
Please stop! I'm dizzy already!
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Johannes Schindelin· Aug 10, 2005, 12:52 UTC · re: Horst von Brand · lore

Re: Sanity check of git-commit patch, was Re: [PATCH] Making CFLAGS compilant with GNU Coding Standards

Hi,
On Tue, 9 Aug 2005, Horst von Brand wrote:
> Isn't it easier to just use getopt(1)?

Only if GNU getopt is available. On Mac OS X, only the BSD version is installed by default, which does not handle long options at all.

> Please stop! I'm dizzy already!
:-)

Ciao, Dscho

Horst von Brand· Aug 16, 2005, 19:41 UTC · lore

Re: Git 1.0 Synopis (Draft v4)

Junio C Hamano <junkio@cox.net> wrote:
[...]
> - Oh, another itch I did not list in the previous message.  Is
>   anybody interested in doing an Emacs VC back-end for GIT?

And teach make(1) about checking out files from git... or just create a co(1) command for git.

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Johannes Schindelin· Aug 16, 2005, 20:41 UTC · re: Horst von Brand · lore

Re: Git 1.0 Synopis (Draft v4)

Hi,
On Tue, 16 Aug 2005, Horst von Brand wrote:
> And teach make(1) about checking out files from git... or just create a
> co(1) command for git.

How about "git-checkout-script", optionally with the "-f" flag to ignore changes since the last checkout/checkin?

Ciao, Dscho

Matthias Urlichs· Aug 18, 2005, 09:27 UTC · re: Horst von Brand · lore

Re: Git 1.0 Synopis (Draft v4)

Hi, Horst von Brand wrote:
> And teach make(1) about checking out files from git... or just create a
> co(1) command for git.
Ummm... why?

make's SCCS support depends on the presence of a SCCS/s.<name> file for each <name>. We don't have that. Teaching make about git would be equivalent to teaching it about parsing the index file.

Technically, that would require a stable libgit.so or so. In reality, however, I don't know when I last had a tree which wasn't fully populated, but it's been a while, and it's something that can be readily fixed by "git-checkout-cache -a".

-- 
Matthias Urlichs   |   {M:U} IT Design @ m-u-it.de   |  smurf@smurf.noris.de
Disclaimer: The quote was selected randomly. Really. | http://smurf.noris.de
 - -
One possible reason that things aren't going according to plan
is that there never was a plan in the first place.
Horst von Brand· Sep 2, 2005, 01:50 UTC · lore

Re: Tool renames? was Re: First stab at glossary

Junio C Hamano <junkio@cox.net> wrote:
> Tim Ottinger <tottinge@progeny.com> writes:
> > git-update-cache for instance?
> > I am not sure which 'cache' commands need to be 'index' now.
> Logically you are right, but I suspect that may not fly well in
> practice.  Too many of us have already got our fingers wired to
> type cache, and the glossary is there to describe both cache and
> index.

I'd vote for cleaning it up /now/. Sure, it will hurt, but if you let time go by and do it later, it will hurt much more.

Pre-1.0 is the last chance, AFAICS.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Tim Ottinger· Sep 6, 2005, 16:42 UTC · re: Horst von Brand · lore

Re: Tool renames? was Re: First stab at glossary

Horst von Brand wrote:
Show 20 quoted lines
>Junio C Hamano <junkio@cox.net> wrote:
>  
>
>>Tim Ottinger <tottinge@progeny.com> writes:
>>    
>>
>>>git-update-cache for instance?
>>>I am not sure which 'cache' commands need to be 'index' now.
>>>      
>>>
>>Logically you are right, but I suspect that may not fly well in practice.  Too many of us have already got our fingers wired to type cache, and the glossary is there to describe both cache andindex.
>>    
>>
>
>I'd vote for cleaning it up /now/. Sure, it will hurt, but if you let time
>go by and do it later, it will hurt much more.
>
>Pre-1.0 is the last chance, AFAICS.
>  
>

I guess it all depends on whether your target audience is already using it an happy with how it is, or whether your target audience is yet to be reached.

Is git growing? Do we expect to suddenly find git upside down, where there are a few old-timers awash in a sea of newbies? Do we care?

If you care, and git is growing, then probably it makes sense to choose "the greatest good for the greatest number", I guess.

Personally, I'm a newbie and I find the command set confusing and hard to internalize for reasons mostly dealing with naming, but also because I don't have 6 months shared history with all of you. I have to learn it partly from docs and partly through folklore gleaned from the list (which moves pretty quickly).

Maybe that's just complaining, but maybe it is pointing out a weakness that's correctable.

-- 
                             ><>
... either 'way ahead of the game, or 'way out in left field.
Horst von Brand· Sep 4, 2005, 21:43 UTC · lore

Re: Tool renames? was Re: First stab at glossary

Junio C Hamano <junkio@cox.net> wrote:
> I said:
> 
> > 	I'll draw up a strawman tonight unless somebody else
> > 	does it first.
[...]
Show 6 quoted lines
> 3. Non-binaries are called '*-scripts'.
> 
>    In earlier discussions some people seem to like the
>    distinction between *-script and others; I did not
>    particularly like it, but I am throwing this in for
>    discussion.

I for one think this makes the command name dependent on a non-essential implementation detail, so -script should go.

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Junio C Hamano· Sep 5, 2005, 00:03 UTC · re: Horst von Brand · lore

Re: Tool renames? was Re: First stab at glossary

Horst von Brand <vonbrand@inf.utfsm.cl> writes:
Show 9 quoted lines
>> 3. Non-binaries are called '*-scripts'.
>> 
>>    In earlier discussions some people seem to like the
>>    distinction between *-script and others; I did not
>>    particularly like it, but I am throwing this in for
>>    discussion.
>
> I for one think this makes the command name dependent on a non-essential
> implementation detail, so -script should go.

I had the same opinion. The counter-argument people raised when this topic came up on the list was that it would help grepping in the source tree.

I'm tempted to suggest doing something along these lines:
 - Rename things that are implemented in shell from *-script to
   *.sh, and perl to *.perl in the source tree;
 - Install them without .{sh,perl} suffix.

Once this is done, the users nor the 'git' wrapper do not have to deal with *-script.

Comments?
Peter Williams· Sep 5, 2005, 00:26 UTC · re: Junio C Hamano · lore

Re: Tool renames? was Re: First stab at glossary

Junio C Hamano wrote:
Show 22 quoted lines
> Horst von Brand <vonbrand@inf.utfsm.cl> writes:
> 
> 
>>>3. Non-binaries are called '*-scripts'.
>>>
>>>   In earlier discussions some people seem to like the
>>>   distinction between *-script and others; I did not
>>>   particularly like it, but I am throwing this in for
>>>   discussion.
>>
>>I for one think this makes the command name dependent on a non-essential
>>implementation detail, so -script should go.
> 
> 
> I had the same opinion.  The counter-argument people raised when
> this topic came up on the list was that it would help grepping
> in the source tree.
> 
> I'm tempted to suggest doing something along these lines:
> 
>  - Rename things that are implemented in shell from *-script to
>    *.sh, and perl to *.perl in the source tree;
*.pl is what is usually used for perl scripts.
Show 13 quoted lines
> 
>  - Install them without .{sh,perl} suffix.
> 
> Once this is done, the users nor the 'git' wrapper do not have
> to deal with *-script.
> 
> Comments?
> 
> 
> -
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
-- 
Peter Williams                                   pwil3058@bigpond.net.au

"Learning, n. The kind of ignorance distinguishing the studious."
  -- Ambrose Bierce
Junio C Hamano· Sep 5, 2005, 00:35 UTC · re: Peter Williams · lore

Re: Tool renames? was Re: First stab at glossary

Peter Williams <pwil3058@bigpond.net.au> writes:
> *.pl is what is usually used for perl scripts.

My recollection may be faulty, but '*.pl' was meant to be used for older Perl libraries back in perl4 days, and the standalone scripts are to be named '*.perl' but many people made the mistake of naming them '*.pl'.

Peter Williams· Sep 5, 2005, 00:45 UTC · re: Junio C Hamano · lore

Re: Tool renames? was Re: First stab at glossary

Junio C Hamano wrote:
Show 10 quoted lines
> Peter Williams <pwil3058@bigpond.net.au> writes:
> 
> 
>>*.pl is what is usually used for perl scripts.
> 
> 
> My recollection may be faulty, but '*.pl' was meant to be used
> for older Perl libraries back in perl4 days, and the standalone
> scripts are to be named '*.perl' but many people made the
> mistake of naming them '*.pl'.

I'm no expert and was just reporting what I'd observed but that observation wasn't thorough enough to notice the distinction that you make so forget what I said. :-)

Peter
-- 
Peter Williams                                   pwil3058@bigpond.net.au

"Learning, n. The kind of ignorance distinguishing the studious."
  -- Ambrose Bierce
Horst von Brand· Sep 5, 2005, 00:54 UTC · lore

Re: Tool renames? was Re: First stab at glossary

Junio C Hamano <junkio@cox.net> wrote:
Show 7 quoted lines
> Horst von Brand <vonbrand@inf.utfsm.cl> writes:
> >> 3. Non-binaries are called '*-scripts'.
> >> 
> >>    In earlier discussions some people seem to like the
> >>    distinction between *-script and others; I did not
> >>    particularly like it, but I am throwing this in for
> >>    discussion.
> > I for one think this makes the command name dependent on a non-essential
> > implementation detail, so -script should go.
> I had the same opinion.  The counter-argument people raised when
> this topic came up on the list was that it would help grepping
> in the source tree.
Grepping for what?

It is not /that/ much more expensive to run file(1) over the tree if you want to know what is a script and what isn't. Furthermore, the "-script" extension doesn't work for this as of today (see your own message a while back ;-). Keeping it requires discipline that tools don't help enforcing today (and the extension use itself is very un-Unix-like), so further "mistakes" /will/ happen.

In any case, this would be for a very specialized, developer-only, occasional task. I don't see how that warrants a fractured tool namespace for /all/ users /all/ the time.

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Junio C Hamano· Sep 5, 2005, 01:35 UTC · re: Horst von Brand · lore

Re: Tool renames? was Re: First stab at glossary

Horst von Brand <vonbrand@inf.utfsm.cl> writes:
Show 6 quoted lines
> Junio C Hamano <junkio@cox.net> wrote:
>> I had the same opinion.  The counter-argument people raised when
>> this topic came up on the list was that it would help grepping
>> in the source tree.
>
> Grepping for what?

I am only a messenger for their argument and, as I said, I did not particularly buy that argument because I myself do not find it too disturbing that a grep in my built tree says "Binary file libgit.a matches", especially I typically run grep in my Emacs buffer and C-x ` (next-error) does not get confused by such useless hits. But I can understand why it matters to people working in other environments.

> In any case, this would be for a very specialized,
> developer-only, occasional task. I don't see how that warrants
> a fractured tool namespace for /all/ users /all/ the time.
Yes, you convinced the convert again.

Now I have to find a poor unsuspecting volunteer to do the actual heavylifting after 0.99.6 happens ;-).

Linus Torvalds· Sep 5, 2005, 14:41 UTC · re: Horst von Brand · lore

Re: Tool renames? was Re: First stab at glossary

On Sun, 4 Sep 2005, Horst von Brand wrote:
Show 5 quoted lines
> > I had the same opinion.  The counter-argument people raised when
> > this topic came up on the list was that it would help grepping
> > in the source tree.
> 
> Grepping for what?
Grepping for strings.

For example, when renaming a binary, the sane way to check that you fixed all users right now is

	grep old-binary-name *.c *.h *-scripts
and you catch all users.

In contrast, "grep *" will catch totally uninteresting patterns like object files etc.

I personally find that very useful, and I don't see _any_ point to naming by what _kind_ of interpreter you use. Why would _anybody_ care whether something is written in perl vs shell? There's no reason to name things by the interpreter.

		Kubys
David Kågedal· Sep 5, 2005, 15:13 UTC · re: Linus Torvalds · lore

Re: Tool renames? was Re: First stab at glossary

Linus Torvalds <torvalds@osdl.org> writes:
Show 23 quoted lines
> On Sun, 4 Sep 2005, Horst von Brand wrote:
>> > I had the same opinion.  The counter-argument people raised when
>> > this topic came up on the list was that it would help grepping
>> > in the source tree.
>> 
>> Grepping for what?
>
> Grepping for strings.
>
> For example, when renaming a binary, the sane way to check that you fixed 
> all users right now is
>
> 	grep old-binary-name *.c *.h *-scripts
>
> and you catch all users.
>
> In contrast, "grep *" will catch totally uninteresting patterns like 
> object files etc.
>
> I personally find that very useful, and I don't see _any_ point to naming 
> by what _kind_ of interpreter you use. Why would _anybody_ care whether 
> something is written in perl vs shell? There's no reason to name things by 
> the interpreter.

But to the users (like myself), there's no point in naming it by whether it's a script or a binary. Since, as a user, I couldn't care less that git-foobar is a shell script, I don't want to pollute the command name space with "-script" suffixes. Calling the command git-foobar makes much more sense, and allows us to reimplement the scripts as binaries, or whatever.

So your argument that it makes it easier for git developers to work with the source doesn't help the user.

The consequence is maybe that the scripts should be called *-script in the source, but be installed without the suffix?

-- 
David Kågedal
Linus Torvalds· Sep 5, 2005, 16:04 UTC · re: David Kågedal · lore

Re: Tool renames? was Re: First stab at glossary

On Mon, 5 Sep 2005, David Kågedal wrote:
> 
> But to the users (like myself), there's no point in naming it by
> whether it's a script or a binary. 
So? There's no downside.

To you, as a user, you never see the "-script" ending anyway. You'd never type it out, or you're already doing something wrong.

So to users it doesn't matter, and to developers it _does_ matter (and calling them ".pl" or ".sh" or something would be _bad_), why not please the developers?

> So your argument that it makes it easier for git developers to work
> with the source doesn't help the user.

It doesn't _help_ the user, but since it doesn't hurt him either, why the hell would we even _care_ about the user?

		Linus
David Kågedal· Sep 5, 2005, 16:28 UTC · re: Linus Torvalds · lore

Re: Tool renames? was Re: First stab at glossary

Linus Torvalds <torvalds@osdl.org> writes:
Show 9 quoted lines
> On Mon, 5 Sep 2005, David Kågedal wrote:
>> 
>> But to the users (like myself), there's no point in naming it by
>> whether it's a script or a binary. 
>
> So? There's no downside.
>
> To you, as a user, you never see the "-script" ending anyway. You'd never 
> type it out, or you're already doing something wrong.

Then I'm doing something wrong. And I'm pretty sure others are too. If I'm not supposed to see the "-script" ending, then don't install it in my $PATH.

Until someone (possibly myself) writes some zsh completion code to handle git sub command, I will continue to hit TAB and see all those names.

Furthermore, the man page for "git clone" is called "git-clone-script(1)". And the "-script" suffix appears inside the documentation in various places. I see it in howtos and log messages. And the git-merge-one-file-script script is supposed to be used in a way where I have to supply the long name. Etc.

If the "-script" part is supposed to be hidden from me, why do I keep seeing it everywhere I turn?

> So to users it doesn't matter, and to developers it _does_ matter (and 
> calling them ".pl" or ".sh" or something would be _bad_), why not please 
> the developers?
I'm not suggesting we'd call them ".pl" or ".sh".
-- 
David Kågedal
Junio C Hamano· Sep 5, 2005, 18:23 UTC · re: David Kågedal · lore

Re: Tool renames? was Re: First stab at glossary

David Kågedal <davidk@lysator.liu.se> writes:
Show 8 quoted lines
> If the "-script" part is supposed to be hidden from me, why do I keep
> seeing it everywhere I turn?
>
>> So to users it doesn't matter, and to developers it _does_ matter (and 
>> calling them ".pl" or ".sh" or something would be _bad_), why not please 
>> the developers?
>
> I'm not suggesting we'd call them ".pl" or ".sh".
Well, I was.  Here is what I had in mind.
1. Introduce SCRIPT_SH and SCRIPT_PERL, and make
   "SCRIPTS = $(SCRIPT_SH) $(SCRIPT_PERL)" in the Makefile.
2. Install git-foo.sh as $(DEST)$(bin)/git-foo
3. Documentation to describe git-foo command is Documentation/git-foo.txt

I was planning to leave gitk source as gitk, not gitk.tcl nor gitk.wish nor gitk.sh for now, if only to help me merging from paurus.

Depending on how people would react to the "why would people
care what scripting language is the thing written in" comment by
Linus, I may be persuaded otherwise though, in which case 1. is
not needed, and 2. would lose '.sh', but 3. would not change.
 
Junio C Hamano· Sep 5, 2005, 18:13 UTC · re: Linus Torvalds · lore

Re: Tool renames? was Re: First stab at glossary

Linus Torvalds <torvalds@osdl.org> writes:
> ... and I don't see _any_ point to naming 
> by what _kind_ of interpreter you use. Why would _anybody_ care whether 
> something is written in perl vs shell?

One possibility that comes to mind is to again help developers who use an editor that is syntax-aware and looks *only* at filename suffix to figure out which language syntax to use (Emacs is not one of them -- it knows how to read #! line).

Another is, although we do not currently do it, to make the Makefile simpler if/when we start to do the interpreter line munging ("#!/usr/bin/perl -> #!/usr/local/bin/perl") before install time.

Martin Langhoff· Sep 6, 2005, 00:13 UTC · re: Linus Torvalds · lore

Re: Tool renames? was Re: First stab at glossary

On 9/6/05, Linus Torvalds <torvalds@osdl.org> wrote:
Show 8 quoted lines
> Grepping for strings.
> 
> For example, when renaming a binary, the sane way to check that you fixed
> all users right now is
> 
>         grep old-binary-name *.c *.h *-scripts
> 
> and you catch all users.
Grep knows how to ignore binary files. Try:
   grep -I git-commit *
cheers,
martin
Linus Torvalds· Sep 6, 2005, 07:16 UTC · re: Martin Langhoff · lore

Re: Tool renames? was Re: First stab at glossary

On Tue, 6 Sep 2005, Martin Langhoff wrote:
> 
> Grep knows how to ignore binary files.
That wasn't the _point_.

The point is, naming things as being "scripts" is useful. Grep is just an example. Naming things as being ".pl" or ".sh" is _not_ useful.

So with grep you can use -I, but what about doing things like "em *" when doing global renames (I use micro-emacs - em - as my editor). Again, "em *-script" actually works.

The point being that if we have naming rules, make them USEFUL. *-script is useful - it works wonderfully well for "git xxx" (which knows to add "-script"), and it works wonderfully well for developers.

		Linus
Junio C Hamano· Sep 6, 2005, 07:46 UTC · re: Linus Torvalds · lore

Re: Tool renames? was Re: First stab at glossary

Linus Torvalds <torvalds@osdl.org> writes:
> The point is, naming things as being "scripts" is useful. Grep is just an 
> example. Naming things as being ".pl" or ".sh" is _not_ useful.
Sorry, but why not?
Linus Torvalds· Sep 6, 2005, 07:59 UTC · re: Junio C Hamano · lore

Re: Tool renames? was Re: First stab at glossary

On Tue, 6 Sep 2005, Junio C Hamano wrote:
Show 6 quoted lines
> Linus Torvalds <torvalds@osdl.org> writes:
> 
> > The point is, naming things as being "scripts" is useful. Grep is just an 
> > example. Naming things as being ".pl" or ".sh" is _not_ useful.
> 
> Sorry, but why not?
What's the upside?

I can point to one downside: "git". That script right now is simple. If you rewrite git-cvsimport-script from shell to perl, it looks the same to git.

		Linus
Junio C Hamano· Sep 6, 2005, 08:38 UTC · re: Linus Torvalds · lore

Re: Tool renames? was Re: First stab at glossary

Linus Torvalds <torvalds@osdl.org> writes:
Show 5 quoted lines
> What's the upside?
>
> I can point to one downside: "git". That script right now is simple. If 
> you rewrite git-cvsimport-script from shell to perl, it looks the same to 
> git. 
What I've been working on was to:
 * have git-cvsimport.perl in the source
 * install it as $(bindir)/git-cvsimport
 * simplify 'git' (whose source is of course in 'git.sh') to
   only do: 
     cmd="$1"; shift; exec "git-$cmd" ${1+"$@"}

Naturally, the rewrite of git-cvsimport in shell or C would look the same to git.

One potential downside (for people who consider this a downside) is that you cannot easily run uninstalled, but you already cannot run tools/git-applymbox and git-cherry-pick uninstalled anyway, and I do not think it is such a big deal.

David Kågedal· Sep 6, 2005, 08:57 UTC · re: Junio C Hamano · lore

Re: Tool renames? was Re: First stab at glossary

Junio C Hamano <junkio@cox.net> writes:
Show 13 quoted lines
> Linus Torvalds <torvalds@osdl.org> writes:
>
>> What's the upside?
>>
>> I can point to one downside: "git". That script right now is simple. If 
>> you rewrite git-cvsimport-script from shell to perl, it looks the same to 
>> git. 
>
> What I've been working on was to:
>
>  * have git-cvsimport.perl in the source
>
>  * install it as $(bindir)/git-cvsimport

That was what I suggested too, although I don't really care if it's called .perl or -script in the source.

By the way, I'm not sure how the 'git' script is supposed to be used. I know that if there is a git-foo-script file in your path, you can run it as 'git foo'. But what about e.g. git-init-db? You can run that as 'git init-db' today. And 'git read-cache' should work too. And 'git ls-files', and 'git rev-parse', and 'git merge-one-file' and 'git sh-setup-script' in decreasing order of usefulness...

But running 'git' without arguments only list the -script commands as available.

-- 
David Kågedal
Junio C Hamano· Sep 6, 2005, 23:54 UTC · re: David Kågedal · lore

Re: Tool renames? was Re: First stab at glossary

Show 9 quoted lines
> By the way, I'm not sure how the 'git' script is supposed to be used.
> I know that if there is a git-foo-script file in your path, you can
> run it as 'git foo'.  But what about e.g. git-init-db?  You can run
> that as 'git init-db' today.  And 'git read-cache' should work too.
> And 'git ls-files', and 'git rev-parse', and 'git merge-one-file' and
> 'git sh-setup-script' in decreasing order of usefulness...
>
> But running 'git' without arguments only list the -script commands as
> available.

You are correct. I think 'git' showing only *-script was done as an attempt to give a list of Porcelainish commands, excluding the core commands that people are not supposed to be typing from the command line. It so happened that all of the Porcelainish commands were scripts.

But what Linus wants *-script to mean is editability in the source tree (his "grep" and "em" examples). The command being Porcelainish and the command being implemented as a script tend to have strong correlations, but in principle they are orthogonal. As you mention, 'git merge-one-file' is not really useful standalone, neither is 'git sh-setup'. On the other hand, 'git fsck-cache' is.

My proposal to have git-archimport.perl in the source tree and install it as $(bindir)/git-archimport solves the editability issues (sorry, Linus, you will have to say "em *.sh *.perl" instead of "em *-script" if we did this) and simplifies the first half of the 'git' wrapper (it just needs to attempt running "git-$1"), but does not help what the latter half of 'git' wrapper does (to give you the list of Porcelainish commands).

To make 'git' wrapper produce useful 'list of subcommands', we need to come up with a list of Porcelainish commands, be they written in C or sh or Perl, and tell 'git' about that list. Current implementation cheats by assuming everything that ends with *-script are such, but it does not have to stay that way.

I'd nominate all $(SCRIPTS) in Makefile and tools/Makefile except *1*, plus *2* as the list of subcommands 'git' wrapper would show.

List *1*: implemented as script but not Porcelainish.
	git
        git-merge-one-file-script
        git-sh-setup-script
List *2*: implemented in C but Porcelainish.
	git-init-db
        git-fsck-cache
        git-get-tar-commit-id
        git-apply
        git-patch-id
        git-pack-objects
        git-show-branch
Junio C Hamano· Sep 8, 2005, 01:04 UTC · re: Junio C Hamano · lore

Tool renames.

Junio C Hamano <junkio@cox.net> writes:
Show 14 quoted lines
> My proposal to have git-archimport.perl in the source tree and
> install it as $(bindir)/git-archimport solves the editability
> issues (sorry, Linus, you will have to say "em *.sh *.perl"
> instead of "em *-script" if we did this) and simplifies the
> first half of the 'git' wrapper (it just needs to attempt
> running "git-$1"), but does not help what the latter half of
> 'git' wrapper does (to give you the list of Porcelainish
> commands).
>
> To make 'git' wrapper produce useful 'list of subcommands', we
> need to come up with a list of Porcelainish commands, be they
> written in C or sh or Perl, and tell 'git' about that list.
> Current implementation cheats by assuming everything that ends
> with *-script are such, but it does not have to stay that way.

I have done this and the first commit since 0.99.6 in the proposed updates branch contains the big rename.

H. Peter Anvin· Sep 15, 2005, 05:56 UTC · re: Junio C Hamano · lore

Re: Tool renames.

Junio C Hamano wrote:
> 
> I have done this and the first commit since 0.99.6 in the
> proposed updates branch contains the big rename.
> 

I noticed you also renamed git-ssh-{push,pull}. These tools rely on having the same names on both sides, so you have introduced a major version skew problem.

	-hpa
Junio C Hamano· Sep 15, 2005, 08:03 UTC · re: H. Peter Anvin · lore

Re: Tool renames.

"H. Peter Anvin" <hpa@zytor.com> writes:
> I noticed you also renamed git-ssh-{push,pull}.  These tools rely on 
> having the same names on both sides, so you have introduced a major 
> version skew problem.

True. It seems that both myself and Daniel did not think that would be a major problem when we were discussing the tool renames.

As a workaround, you could always say GIT_SSH_PULL='blah' and GIT_SSH_PUSH='bah' when you run either side to name what will be run on the other end.

Now the interesting problem is if we should rename these environment variables ...

Junio C Hamano· Sep 15, 2005, 08:52 UTC · re: Junio C Hamano · lore

Re: Tool renames.

Junio C Hamano <junkio@cox.net> writes:
Show 13 quoted lines
> "H. Peter Anvin" <hpa@zytor.com> writes:
>
>> I noticed you also renamed git-ssh-{push,pull}.  These tools rely on 
>> having the same names on both sides, so you have introduced a major 
>> version skew problem.
>
> True.  It seems that both myself and Daniel did not think that
> would be a major problem when we were discussing the tool
> renames.
>
> As a workaround, you could always say GIT_SSH_PULL='blah' and
> GIT_SSH_PUSH='bah' when you run either side to name what will be
> run on the other end.

Come to think of it, I should be able to build git-ssh-push and git-ssh-pull as fully backward compatible way to call the counterpart with original name, instead of supplying just symlinks the same way I do currently. Let me work do that before I do 0.99.7 this weekend.

> Now the interesting problem is if we should rename these
> environment variables ...

And the old and new binaries will be built separately anyway, I could use GIT_SSH_FETCH and GIT_SSH_UPLOAD in the newname binaries while keeping the old names in oldname binaries. Ack?

H. Peter Anvin· Sep 16, 2005, 05:44 UTC · re: Junio C Hamano · lore

Re: Tool renames.

Junio C Hamano wrote:
Show 7 quoted lines
> 
> Come to think of it, I should be able to build git-ssh-push and
> git-ssh-pull as fully backward compatible way to call the
> counterpart with original name, instead of supplying just
> symlinks the same way I do currently.  Let me work do that
> before I do 0.99.7 this weekend.
> 

Better yet, always install the links, and have them use the *old* names when calling the remote end.

Show 6 quoted lines
>>Now the interesting problem is if we should rename these
>>environment variables ...
> 
> And the old and new binaries will be built separately anyway, I
> could use GIT_SSH_FETCH and GIT_SSH_UPLOAD in the newname
> binaries while keeping the old names in oldname binaries.  Ack?
Urk.  Why do this rename anyway?
Typically when doing new environment variables like this you do:
	foo = getenv("NEW_NAME");
	if ( !foo )
		foo = getenv("OLD_NAME");
	-hpa
Junio C Hamano· Sep 16, 2005, 06:20 UTC · re: H. Peter Anvin · lore

Re: Tool renames.

"H. Peter Anvin" <hpa@zytor.com> writes:
> Urk.  Why do this rename anyway?
The "big rename"?  Or these two environment variables?

The former is because it was brought up by somebody who was introduced to git not so long time ago (i.e. fingers not so trained to use the old names and the brain wired to terminology found in the glossary document) for consistency, with favorable response from the git list. The latter is just me feeling that would make things more consistent.

As I outlined, if you keep using the git-ssh-{push,pull} names, nothing should break. They call each other using old names, and 0.99.7 will ship both new and old, so one end having 0.99.5 and the other having 0.99.7 should not be a problem both ways. The same goes for those GIT_SSH_* environment variables -- backward compatible commands honor environment variables with old names.

> Typically when doing new environment variables like this you do:

Yes that was what we did with the other old environment names, but I can finally deprecate them in 0.99.7.

Initially I said 0.99.8 will stop supporting the old names (including git-ssh-{push,pull}) and switch to new names only, but I could be talked into carrying that beyond that, although I have not heard any objections for that "dropping" plan since I initially announced it when 0.99.6 was done.

But I personally prefer dropping the old names before we hit 1.0.
Martin Langhoff· Sep 6, 2005, 07:53 UTC · re: Linus Torvalds · lore

Re: Tool renames? was Re: First stab at glossary

On 9/6/05, Linus Torvalds <torvalds@osdl.org> wrote:
> That wasn't the _point_.
Agreed - sorry I should have qualified my comment.

I agree with having useful extensions for ease of development. And I agree with the suggestion of installing them with stripped extensions -- to extend the abstraction.

OTOH...
> The point is, naming things as being "scripts" is useful. Grep is just an
> example. Naming things as being ".pl" or ".sh" is _not_ useful.

Hrmmm. Not so convinced about that. There are good reasons to distinguish files with different internal syntax. Perhaps it's your C-bias but for script maintainers it isn't helpful to deal with -script prefixes.

If a bash script is rewritten in C, it is a useful and meaningful change (from a developer perspective) that the file changes name. Both can live in the tree while the new one matures, running diffs or pickaxes will show one file created and another removed, instead of a very meaningless diff. The same applies if it is rewritten in Perl, or Python.

IOW: Perl programmers are developers too ;-)
cheers,
martin
Horst von Brand· Sep 13, 2005, 17:39 UTC · lore

Re: [PATCH] Improve "git grep" flags handling

Junio C Hamano <junkio@cox.net> wrote:
[...]
Show 11 quoted lines
>  Thanks, Linus.  This is what will go into "master" tonight.
> 
>  git-grep.sh |   64 ++++++++++++++++++++++++++++++++++++++---------------------
>  1 files changed, 41 insertions(+), 23 deletions(-)
> 
> 6df4eef9b10c8de2b9bc3dc769f3a008a1200df7
> diff --git a/git-grep.sh b/git-grep.sh
> --- a/git-grep.sh
> +++ b/git-grep.sh
> @@ -1,25 +1,43 @@
>  #!/bin/sh

Shouldn't shebang go /bin/bash, as the script uses bash-isms now? (For portability to non-enlightened systems the installation would have to locate bash too... and/or mention this in the INSTALL file)

Or perhaps redo the mess in Perl or some such?
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Linus Torvalds· Sep 13, 2005, 17:51 UTC · re: Horst von Brand · lore

Re: [PATCH] Improve "git grep" flags handling

On Tue, 13 Sep 2005, Horst von Brand wrote:
> 
> Shouldn't shebang go /bin/bash, as the script uses bash-isms now?
> (For portability to non-enlightened systems the installation would have to
> locate bash too... and/or mention this in the INSTALL file)
Some bash installs only install in /bin/sh, so..
> Or perhaps redo the mess in Perl or some such?

Hey, the code isn't a mess. The fact that there are tons of different shells and they don't support it is the mess.

So we should strive for bash syntax to be so common that other shells follow suit ;)

I personally find perl to be a really bad language. It has more of a unified base (different versions, but at least not totally different and unrelated implementations), and it's clearly more powerful, but as a _language_ I don't understand how anybody can accept that crap.

The "there's more than one way to do something" slogan may be cute and sound good to people who are drawn to that thing, but it's actually bad. The language is designed to be write-only, and the "you can do it fifty different ways" is part of it (and line noise characters is another part of it).

So sh is actually often a much better language. Too bad some of the features end up being outside the standard language.

I know, I know, people will consider me crazy for saying that. 
Oh, well. As long as all the _important_ stuff is in C, we're ok.
			Linus
Junio C Hamano· Sep 13, 2005, 18:53 UTC · re: Horst von Brand · lore

Re: [PATCH] Improve "git grep" flags handling

Horst von Brand <vonbrand@inf.utfsm.cl> writes:
> Shouldn't shebang go /bin/bash, as the script uses bash-isms now?
> (For portability to non-enlightened systems the installation would have to
> locate bash too... and/or mention this in the INSTALL file)

I heard somebody say the shell arrays actually came from Korn, so /bin/bash is a wrong thing to do if that is the case.

> Or perhaps redo the mess in Perl or some such?

Especially given 'xargs grep' part is moderately expensive anyway and startup overhead between shell and perl does not matter here very much, the suggestion is mildly tempting.

Linus Torvalds· Sep 13, 2005, 19:09 UTC · re: Junio C Hamano · lore

Re: [PATCH] Improve "git grep" flags handling

On Tue, 13 Sep 2005, Junio C Hamano wrote:
> 
> I heard somebody say the shell arrays actually came from Korn,
> so /bin/bash is a wrong thing to do if that is the case.
Me. 

There are differences in indexing the arrays between ksh and bash, but I think the git-grep.sh style of usage should work on both bash and ksh.

[ goes off and tests ]

Indeed. I just tested the thing I sent out with "ksh git-grep.sh .." and it worked fine.

Using "zsh" the grep flags don't work, and "tcsh" obviously will never run _any_ valid shell code ;)

		Linus
Horst von Brand· Sep 13, 2005, 22:03 UTC · lore

Re: dumb transports not being welcomed..

Junio C Hamano <junkio@cox.net> wrote:
[...]
> Using cogito is not a problem at all.  The mechanism to prepare
> trees to serve wider audience not being used widely is.
It isn't really documented...
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Junio C Hamano· Sep 13, 2005, 22:23 UTC · re: Horst von Brand · lore

Re: dumb transports not being welcomed..

Horst von Brand <vonbrand@inf.utfsm.cl> writes:
Show 8 quoted lines
> Junio C Hamano <junkio@cox.net> wrote:
>
> [...]
>
>> Using cogito is not a problem at all.  The mechanism to prepare
>> trees to serve wider audience not being used widely is.
>
> It isn't really documented...

True. The existing documentation might be sketchy. We only have the following documentation pages right now. Clarification patches are welcome.

http://www.kernel.org/pub/software/scm/git/docs/tutorial.html
    Look for "Publishing your work" section, and
    "Working with Others section, "project lead" and "subsystem
    maintainer" subsections, both bullet point #2.
http://www.kernel.org/pub/software/scm/git/docs/git-update-server-info.html
    The above sections in the tutorial repeatedly mentions this
    command.
http://www.kernel.org/pub/software/scm/git/docs/repository-layout.html
    And git-update-server-info documentation refers to this page.
    Look for "objects/info/packs" and "info/refs".
Horst von Brand· Sep 17, 2005, 01:58 UTC · lore

Re: deprecating more

Junio C Hamano <junkio@cox.net> wrote:
[About axing programs]
Show 12 quoted lines
> Among them, I could be talked into keeping git-export on the
> condition that we will add a counterpart git-import that can
> read git-export output and recreate an identical repository
> [*1*]; without something like that, I doubt its usefulness,
> especially since "git-whatchanged" is far more useful for
> everyday use.
> 
> [Footnote]
> 
> *1* which I think actually is impossible without fixing
> git-export first so that it exports the initial commit.  I may
> be mistaken.

Given that you can just tar the whole repository up and handle it that way, all that work makes little sense.

Note that bk export (and cg-export) copy the current snapshot into a directory or tarball, so this doesn't do what I'd expected.

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Horst von Brand· Sep 20, 2005, 03:12 UTC · lore

Re: What shall we do with the GECOS field again?

Junio C Hamano <junkio@cox.net> wrote:
Show 12 quoted lines
> Linus Torvalds <torvalds@osdl.org> writes:
> > The Perl User::pwent module seems to agree, btw (also about '&'):
> >
> >    "Interpretation of the gecos field varies between systems, but
> >     traditionally holds 4 comma-separated fields containing the user's
> >     full name, office location, work phone number, and home phone number.  
> >
> >     An & in the gecos field should be replaced by the user's properly
> >     capitalized login name."
> 
> I vaguelly recall seeing that & somewhere and wondering what
> they do with mcdonalds ;-)
You can't use it in that case.
Show 5 quoted lines
> > I still worry about names of the type "Torvalds, Linus", but maybe that's 
> > just not an issue.
> 
> Does not appear to be.  So I'd vote for us doing the "cut at
> first comma, substitute & with toupper(login[0])+login[1..]".
That is exactly the intent.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Horst von Brand· Oct 3, 2005, 15:09 UTC · lore

Re: What to expect after 0.99.8

Junio C Hamano <junkio@cox.net> wrote:
Show 12 quoted lines
> A Large Angry SCM <gitzilla@gmail.com> writes:
> 
> > If you were to publish the ToDo to the mailing list once a week it might 
> > encourage more of those patches you want to accept.
> 
> Hmph.  I tend to dislike periodical posting that is more often
> than once a month.
> 
> >> * Accept patches to finish missing docs.
> >
> > A list of missing, incomplete, and/or wrong docs in the ToDo file would 
> > help focus effort when people (like me) have space cycles.
Show 5 quoted lines
> Well, the thing is, I am not good at documentation, especially
> when I have other interests, and once I start writing a list of
> missing or incomplete docs, my interests _will_ shift to fill in
> those gaps and I will end up doing them myself, which means I
> would not have a chance to place the list in the TODO file.
Then put the following on the TODO list:
* Accept patches to the TODO list for missing/incomplete/... documentation
;-)
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Horst von Brand· Oct 4, 2005, 19:52 UTC · lore

Re: [PATCH] Return error when not checking out an entry due to dirtiness.

Junio C Hamano <junkio@cox.net> wrote:
Show 34 quoted lines
> Without -f flag, 'git-checkout-index foo.c' issued an error message
> when foo.c already existed in the working tree and did not match index.
> However it did not return an error from the underlying checkout_entry()
> function and resulted in a successful exit(0).
> 
> Signed-off-by: Junio C Hamano <junkio@cox.net>
> 
> ---
> 
>  * I've made sure that the existing scripts do not use
>    checkout-index without -f in a way that could be affected by
>    this change.  However, third-party scripts may be affected by
>    this.  Cogito and StGIT should be OK -- they either run
>    checkout with -f, do not check the error return when it does
>    not use -f, or runs checkout without -f in an empty working
>    tree.
> 
>  checkout-index.c |   11 ++++++++---
>  entry.c          |    2 +-
>  2 files changed, 9 insertions(+), 4 deletions(-)
> 
> 5a166f6a9d1b7ca2de673139fbfc4112b1b2e308
> diff --git a/checkout-index.c b/checkout-index.c
> --- a/checkout-index.c
> +++ b/checkout-index.c
> @@ -63,15 +63,20 @@ static int checkout_file(const char *nam
>  
>  static int checkout_all(void)
>  {
> -	int i;
> +	int i, errs;
>  
> -	for (i = 0; i < active_nr ; i++) {
> +	for (errs = i = 0; i < active_nr ; i++) {
This is ugly. Why not just:
        errs = 0;
        for (i = 0; i < active_nr ; i++) {    
(errs is in no way the variable controlled by the for).
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Horst von Brand· Oct 27, 2005, 21:13 UTC · lore

Re: [TENTATIVE PATCH] Complain loudly, dying, when a ref is invalid

Junio C Hamano <junkio@cox.net> wrote:
[...]
Show 5 quoted lines
> Not that the current loop is any better for that purpose.  We
> silently ignore not just dangling ref and ref not storing
> 40-byte hex, but files starting with a period '.',  names longer
> than 255 bytes, and unreadable ones, all of which we would
> probably want to warn about in such a tool.

I have yet to come across a filesystem allowing names of more than 255 characters...

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Horst von Brand· Oct 31, 2005, 21:40 UTC · lore

Archaeology [Was: Re: GIT 0.99.9]

Junio C Hamano <junkio@cox.net> wrote:
[...]
> One good thing to have would be to add a section to Tutorial.
> Currently we cover building a small project from scratch and
> have the readers graduate when they learn basic commit swapping,
> but we do not talk much about archaeology tools.

One of the problems with that is to have a sufficiently rich repository at hand. People who futz around with git could be directed to get the latest git from git for a guided tour.

Or create a script like the one in the cogito tutorial to build up someting interesting and then direct people to look it over.

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Horst von Brand· Nov 1, 2005, 23:15 UTC · lore

Re: git 0.99.9: Subversion importer breaks RPM generation (rpmbuild bug)

Junio C Hamano <junkio@cox.net> wrote:
[...]
> I do not know much about how things are done in the RPM world,
> but is there a concept of "the upstream" vs "packaging
> maintainer" there?  IOW, are the majority of RPM binary packages
> done by the upstream maintainer?

No, they aren't. RPM is set up so you can take the vanilla upstream package and add local patches, special configuration, ... at will downstream.

Show 12 quoted lines
> 
> I am currently generating i386 RPMs and i386 debs myself but I
> am not particularly proud of the current setup.  I do not have
> an RPM based machine that I can install the result myself to
> test (which is what started this thread).  Since I am not a
> Debian developer (and I do not particularly wish to become one
> myself), the debs I generate will not be official anyway.
> Personally I'd be happier if I can just lose rpm and deb targets
> from the "upstream" Makefile (git-core.spec file and debian/
> subdirectory as well while we are at it), ask "packaging
> maintainers" to pull from kernel.org/ tree and do RPMs and Debs
> outside.

Please keep the git-core.spec file, it is useful to be able to build RPMs directly from the tarball.

[...]
Show 9 quoted lines
> One thing we could do without breaking much of the current
> arrangement is to have a team of people to help porting for
> major packaging formats (RPMs and Debs mostly but I know we have
> OpenBSD and Darwin people here too), and ask them to feed me the
> updates to rpm/deb/whatever target in the Makefile as needed.
> Especially before a major release I could ask them to test
> things out and generate binary packages, perhaps taken out of
> the tip of the master branch, or even another "for-porters"
> branch for this purpose.
Good idea. Will build RPMs regularly then.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Junio C Hamano· Nov 2, 2005, 03:36 UTC · re: Horst von Brand · lore

Re: git 0.99.9: Subversion importer breaks RPM generation (rpmbuild bug)

Horst von Brand <vonbrand@inf.utfsm.cl> writes:
Show 13 quoted lines
> Junio C Hamano <junkio@cox.net> wrote:
>
>> One thing we could do without breaking much of the current
>> arrangement is to have a team of people to help porting for
>> major packaging formats (RPMs and Debs mostly but I know we have
>> OpenBSD and Darwin people here too), and ask them to feed me the
>> updates to rpm/deb/whatever target in the Makefile as needed.
>> Especially before a major release I could ask them to test
>> things out and generate binary packages, perhaps taken out of
>> the tip of the master branch, or even another "for-porters"
>> branch for this purpose.
>
> Good idea. Will build RPMs regularly then.
Can I take that to mean you are volunteering?
Horst von Brand· Nov 6, 2005, 03:12 UTC · lore

Re: git binary directory?

Junio C Hamano <junkio@cox.net> wrote:
Show 7 quoted lines
> Linus Torvalds <torvalds@osdl.org> writes:
> > Now, I happen to think that 2500+ files in /usr/bin is a bit much (ever 
> > try to use the horrid gnome executable finder on it when you want to 
> > convince firefox to use xpdf instead of that broken crap called "evince"? 
> > Takes absolutely ages and is horrible).
> >
> > And git made it about 4% worse all on its own.
[...]
> Since we do not have enough clout to have /usr/bin/git/ and ask
> the users to put that in their PATH like X11 does,
That is going away. No more /usr/X11R6/{bin,lib,man} junk.
>                                                    we need to
> teach some of our commands that use other git commands to
> prepend /usr/lib/git/ (or /usr/libexec/git)

AFAIU, /usr/libexec/git (or /usr/libexec/git-<version>) would be better. Including the version would make it possible to have the last stable and a development version coexisting, like gcc does with -V. Or its -B option, which tells it where to find the executables that do the real work.

Show 5 quoted lines
>                                             on their PATH while
> they run.  Although many of the Porcelainish commands include
> git-sh-setup, git-sh-setup itself is a prime candidate to be
> kicked out of /usr/bin, which means essentially everything needs
> to have that PATH trick.
> This also is a bit inconvenient for our in-source-tree tests.
Explicitly saying where to find all the stuff with -B would help here.

The only downside is that git-<TAB> won't find them anymore, but I'm sure the bash-completion people will fix that soon ;-)

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Kay Sievers· Nov 6, 2005, 05:00 UTC · re: Horst von Brand · lore

Re: git binary directory?

On Sun, Nov 06, 2005 at 12:12:30AM -0300, Horst von Brand wrote:
Show 21 quoted lines
> Junio C Hamano <junkio@cox.net> wrote:
> > Linus Torvalds <torvalds@osdl.org> writes:
> > > Now, I happen to think that 2500+ files in /usr/bin is a bit much (ever 
> > > try to use the horrid gnome executable finder on it when you want to 
> > > convince firefox to use xpdf instead of that broken crap called "evince"? 
> > > Takes absolutely ages and is horrible).
> > >
> > > And git made it about 4% worse all on its own.
> 
> [...]
> 
> > Since we do not have enough clout to have /usr/bin/git/ and ask
> > the users to put that in their PATH like X11 does,
> 
> That is going away. No more /usr/X11R6/{bin,lib,man} junk.
> 
> >                                                    we need to
> > teach some of our commands that use other git commands to
> > prepend /usr/lib/git/ (or /usr/libexec/git)
> 
> AFAIU, /usr/libexec/git (or /usr/libexec/git-<version>) would be better.

Note that "libexec" is not LSB conform - whatever that means, but it should probably not be used for new projects. It states: "Applications may use a single subdirectory under /usr/lib."

Kay
Junio C Hamano· Nov 6, 2005, 05:36 UTC · re: Kay Sievers · lore

Re: git binary directory?

Kay Sievers <kay.sievers@vrfy.org> writes:
> Note that "libexec" is not LSB conform - whatever that means, but it
> should probably not be used for new projects. It states: "Applications
> may use a single subdirectory under /usr/lib."

I had an impression that there are still UNIXy systems that are not even Linux; do they follow LSB and drop libexec?

Petr Baudis· Nov 6, 2005, 08:23 UTC · re: Junio C Hamano · lore

Re: git binary directory?

Dear diary, on Sun, Nov 06, 2005 at 06:36:59AM CET, I got a letter where Junio C Hamano <junkio@cox.net> told me that...

Show 8 quoted lines
> Kay Sievers <kay.sievers@vrfy.org> writes:
> 
> > Note that "libexec" is not LSB conform - whatever that means, but it
> > should probably not be used for new projects. It states: "Applications
> > may use a single subdirectory under /usr/lib."
> 
> I had an impression that there are still UNIXy systems that are
> not even Linux; do they follow LSB and drop libexec?

At least BSDs still seem to have libexec, but they are just as likely to have lib, I would say, while on Linux it is going away (not that I would be excited about it). So we could either make this per-system, or default to something that is going to be present everywhere (lib), I think.

-- 
			Petr "Pasky libdir=$(prefix)/lib/cogito" Baudis
Stuff: http://pasky.or.cz/
VI has two modes: the one in which it beeps and the one in which
it doesn't.
Junio C Hamano· Nov 6, 2005, 08:33 UTC · re: Petr Baudis · lore

Re: git binary directory?

Petr Baudis <pasky@suse.cz> writes:
Show 5 quoted lines
> At least BSDs still seem to have libexec, but they are just as likely to
> have lib, I would say, while on Linux it is going away (not that I would
> be excited about it). So we could either make this per-system, or
> default to something that is going to be present everywhere (lib),
> I think.

Yes, that should definitely be done per system. The main Makefile does not have it different from bindir. In fact, the main Makefile still installs everything in $HOME/bin by default.

Petr Baudis· Nov 6, 2005, 08:28 UTC · re: Horst von Brand · lore

Re: git binary directory?

Dear diary, on Sun, Nov 06, 2005 at 04:12:30AM CET, I got a letter where Horst von Brand <vonbrand@inf.utfsm.cl> told me that...

Show 9 quoted lines
> Junio C Hamano <junkio@cox.net> wrote:
> >                                                    we need to
> > teach some of our commands that use other git commands to
> > prepend /usr/lib/git/ (or /usr/libexec/git)
> 
> AFAIU, /usr/libexec/git (or /usr/libexec/git-<version>) would be better.
> Including the version would make it possible to have the last stable and a
> development version coexisting, like gcc does with -V. Or its -B option,
> which tells it where to find the executables that do the real work.
In Cogito, when including the lib programs, I'm doing
	. ${COGITO_LIB}cg-Xlib || exit 1
and then during installation I do:
	sed -e 's/\$${COGITO_LIB}/"\$${COGITO_LIB:-$(libdir)\/}"/g'
Then I can override it during execution by exporting $COGITO_LIB.
-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
VI has two modes: the one in which it beeps and the one in which
it doesn't.
Horst von Brand· Dec 4, 2005, 20:16 UTC · lore

Re: [ANNOUNCE] GIT 0.99.9l aka 1.0rc4

Junio C Hamano <junkio@cox.net> wrote:
> GIT 0.99.9l aka 1.0rc4 is found at a new location.
What would that new location be?
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
H. Peter Anvin· Dec 4, 2005, 20:49 UTC · re: Horst von Brand · lore

Re: [ANNOUNCE] GIT 0.99.9l aka 1.0rc4

Horst von Brand wrote:
Show 5 quoted lines
> Junio C Hamano <junkio@cox.net> wrote:
> 
>>GIT 0.99.9l aka 1.0rc4 is found at a new location.
> 
> What would that new location be?
If you get RPMS, you want to get them from:
http://www.kernel.org/pub/software/scm/git/RPMS/$basearch/
I don't believe non-RPMs have changed.
	-hpa
Horst von Brand· Dec 22, 2005, 00:27 UTC · lore

Re: [PATCH] off-by-one bugs found by valgrind

Junio C Hamano <junkio@cox.net> wrote:
> Pavel Roskin <proski@gnu.org> writes:
[...]
Show 8 quoted lines
> > quote_c_style_counted() in quote.c uses a dangerous construct, when a
> > variable is incremented once and used twice in the same expression.
> 
> Sorry, I do not follow you.  Isn't && a sequence point?
> 
> > -	for (sp = name; (ch = *sp++) && (sp - name) <= namelen; ) {
> > -
> > +	for (sp = name; sp < name + namelen; sp++) {

Yes, it is, so it doesn't fix any bugs; but Pavel's version is definitely more readable.

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Horst von Brand· Jan 28, 2006, 04:55 UTC · lore

Re: Notes on Subproject Support

Junio C Hamano <junkio@cox.net> wrote:
> This is still a draft/WIP, but "release early" is a good
> discipline, so...

One thing that has bugged me from the beginning of this, and which does come out of your example: Why only project/subproject? In your example, you have the kernel (OK(ish)) and "rest of the world", which could itself break up and be tracking e.g. uClibc, and dhcp, and... And perhaps the kernel itself breaks up into (local and vanilla) components.

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Junio C Hamano· Jan 28, 2006, 21:43 UTC · re: Horst von Brand · lore

Re: Notes on Subproject Support

Horst von Brand <vonbrand@inf.utfsm.cl> writes:
> One thing that has bugged me from the beginning of this, and which does
> come out of your example: Why only project/subproject? In your example, you
> have the kernel (OK(ish)) and "rest of the world",...
Because I presented the example badly, perhaps?

There is nothing that prevents you from having more "bind" lines than the example showed, to have one project that works with N subprojects. In fact, the examples in earlier threads used a project with the kernel and gcc subprojects -- I just felt it was so obvious you can do N subprojects instead of just one, so used just one subproject in the latest round of example for the sake of brevity.

And there is nothing that prevents you from having "bind" lines in the subproject commit objects, either.

The structure the lower level objects support with the "bound commit" extension is not about "project vs subproject". You can express "project that has subprojects each of which has subsubprojects".

Now, it is totally a separate issue that anybody sane would want to keep track of such structure, or we would be better off leaving it to build infrastructure specific to each toplevel project, as argued by some earlier.

Horst von Brand· Jun 4, 2006, 02:02 UTC · lore

Re: [PATCH 0/27] Documentation: Spelling fixes

Junio C Hamano <junkio@cox.net> wrote:
Show 7 quoted lines
> Most do not seem to be typoes, depending on where you learned
> the language (XYZour vs XYZor; ok, Ok, and OK; ie vs i.e.).  I
> favour the latter two changes myself, but honestly, I do not
> deeply care that much.  The rest are real typos.
> 
> It seems that 1/27 did not make here, nor either of the two big
> mailing list archives (gmane and marc).
Just resent it alone.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Horst von Brand· Jun 6, 2006, 15:42 UTC · lore

Re: [PATCH] Cleanup git-send-email.perl:extract_valid_email

Junio C Hamano <junkio@cox.net> wrote:
Show 21 quoted lines
> Horst von Brand <vonbrand@inf.utfsm.cl> writes:
> 
> >> >  	# check for a local address:
> >> > -	return $address if ($address =~ /^([\w\-]+)$/);
> >> > +	return $address if ($address =~ /^([\w\-.]+)$/);
> >> 
> >> I keep forgetting this, '+' is a valid (and useful) setup, too.
> >
> > Oops...
> >> 
> >> Actually, I'm retracting my earlier ack on this.  This is way too
> >> restrictive.  I'd rather allow an occasional invalid email address than
> >> to reject valid ones.  I generally trust git users to know what they're
> >> doing when entering email addresses[1].
> >> 
> >> *, $, ^, +, = are all valid characters in the username portion (not sure
> >> about local accounts, though), and I'm sure there are more that I don't
> >> know about.
> >
> > As a general principle, I prefer to check what is legal instead of trying
> > to filter out what isn't.
> If we start doing addr-spec in RFC2822 (page 17) ourselves, we
> should rather be using Email::Valid.  A permissive sanity check
> to catch obvious mistakes would be more appropriate here than
> being RFC police.
OK.
Show 15 quoted lines
> I think something like the attached, on top of your patch, would
> be appropriate for upcoming 1.4.0.
> 
> -- >8 --
> send-email: be more lenient and just catch obvious mistakes.
> 
> This cleans up the pattern matching subroutine by introducing
> two variables to hold regexp to approximately match local-part
> and domain in the e-mail address.  It is meant to catch obvious
> mistakes with a cheap check.
> 
> The patch also moves "scalar" to force Email::Valid->address()
> to work in !wantarray environment to extract_valid_address;
> earlier it was in the caller of the subroutine, which was way
> too error prone.
Right.
Show 11 quoted lines
> ---
> diff --git a/git-send-email.perl b/git-send-email.perl
> index a7a7797..700d0c3 100755
> --- a/git-send-email.perl
> +++ b/git-send-email.perl
> @@ -312,16 +312,18 @@ our ($message_id, $cc, %mail, $subject, 
>  
>  sub extract_valid_address {
>  	my $address = shift;
> +	my $local_part_regexp = '[^<>"\s@]+';
> +	my $domain_regexp = '[^.<>"\s@]+\.[^<>"\s@]+';

This forces a '.' in the domain, while vonbrand@localhost is perfectly reasonable. Plus it doesn't disallow adyacent '.'s. What about:

        my $domain_regexp = '[^.<>"\s@]+(\.[^<>"\s@]+)*';
(but this is probably nitpicking...)
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Junio C Hamano· Jun 6, 2006, 15:54 UTC · re: Horst von Brand · lore

Re: [PATCH] Cleanup git-send-email.perl:extract_valid_email

Horst von Brand <vonbrand@inf.utfsm.cl> writes:
Show 17 quoted lines
>> diff --git a/git-send-email.perl b/git-send-email.perl
>> index a7a7797..700d0c3 100755
>> --- a/git-send-email.perl
>> +++ b/git-send-email.perl
>> @@ -312,16 +312,18 @@ our ($message_id, $cc, %mail, $subject, 
>>  
>>  sub extract_valid_address {
>>  	my $address = shift;
>> +	my $local_part_regexp = '[^<>"\s@]+';
>> +	my $domain_regexp = '[^.<>"\s@]+\.[^<>"\s@]+';
>
> This forces a '.' in the domain, while vonbrand@localhost is perfectly
> reasonable. Plus it doesn't disallow adyacent '.'s. What about:
>
>         my $domain_regexp = '[^.<>"\s@]+(\.[^<>"\s@]+)*';
>
> (but this is probably nitpicking...)

I do not have preference either way about allowing an address like tld-administrator@net myself, but Email::Valid->address does not seem to allow it, and I just copied that behaviour for consistency between two alternative implementations.

I think you meant to say:
>         my $domain_regexp = '[^.<>"\s@]+(\.[^.<>"\s@]+)*';

(i.e. exclude dot from the latter character class), but I am inclined to do this instead:

	my $domain_regexp = '[^.<>"\s@]+(?:\.[^.<>"\s@]+)+';
(i.e. still require at least two levels).
Horst von Brand· Jun 6, 2006, 16:05 UTC · lore

Re: [PATCH] Cleanup git-send-email.perl:extract_valid_email

Junio C Hamano <junkio@cox.net> wrote:
Show 24 quoted lines
> Horst von Brand <vonbrand@inf.utfsm.cl> writes:
> 
> >> diff --git a/git-send-email.perl b/git-send-email.perl
> >> index a7a7797..700d0c3 100755
> >> --- a/git-send-email.perl
> >> +++ b/git-send-email.perl
> >> @@ -312,16 +312,18 @@ our ($message_id, $cc, %mail, $subject, 
> >>  
> >>  sub extract_valid_address {
> >>  	my $address = shift;
> >> +	my $local_part_regexp = '[^<>"\s@]+';
> >> +	my $domain_regexp = '[^.<>"\s@]+\.[^<>"\s@]+';
> >
> > This forces a '.' in the domain, while vonbrand@localhost is perfectly
> > reasonable. Plus it doesn't disallow adyacent '.'s. What about:
> >
> >         my $domain_regexp = '[^.<>"\s@]+(\.[^<>"\s@]+)*';
> >
> > (but this is probably nitpicking...)
> 
> I do not have preference either way about allowing an address
> like tld-administrator@net myself, but Email::Valid->address
> does not seem to allow it, and I just copied that behaviour for
> consistency between two alternative implementations.
Reasonable.
Show 5 quoted lines
> I think you meant to say:
> 
> >         my $domain_regexp = '[^.<>"\s@]+(\.[^.<>"\s@]+)*';
> 
> (i.e. exclude dot from the latter character class),
Right, my bad.
Show 6 quoted lines
>                                                     but I am
> inclined to do this instead:
> 
> 	my $domain_regexp = '[^.<>"\s@]+(?:\.[^.<>"\s@]+)+';
> 
> (i.e. still require at least two levels).

OK, but be careful as this (?:...) is an extended regexp (needs /x on match). I'd just leave it plain (the performance impact shouldn't be noticeable). I don't see any use except for $1, so the extra parenthesis should be safe.

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Junio C Hamano· Jun 6, 2006, 16:58 UTC · re: Horst von Brand · lore

Re: [PATCH] Cleanup git-send-email.perl:extract_valid_email

Horst von Brand <vonbrand@inf.utfsm.cl> writes:
Show 10 quoted lines
> Junio C Hamano <junkio@cox.net> wrote:
>>                                                     but I am
>> inclined to do this instead:
>> 
>> 	my $domain_regexp = '[^.<>"\s@]+(?:\.[^.<>"\s@]+)+';
>> 
>> (i.e. still require at least two levels).
>
> OK, but be careful as this (?:...) is an extended regexp (needs /x on
> match).
Are you sure about /x?
Horst von Brand· Jun 6, 2006, 21:24 UTC · lore

Re: [PATCH] Cleanup git-send-email.perl:extract_valid_email

Junio C Hamano <junkio@cox.net> wrote:
Show 11 quoted lines
> Horst von Brand <vonbrand@inf.utfsm.cl> writes:
> > Junio C Hamano <junkio@cox.net> wrote:
> >>                                                     but I am
> >> inclined to do this instead:
> >> 
> >> 	my $domain_regexp = '[^.<>"\s@]+(?:\.[^.<>"\s@]+)+';
> >> 
> >> (i.e. still require at least two levels).
> >
> > OK, but be careful as this (?:...) is an extended regexp (needs /x on
> > match).
> Are you sure about /x?

The manual (perlop(1)) says you need /x to match extended regexps, and (?...) is the marker for such (perlre(1)). But my perl here (5.5.8-6 on Fedora rawhide) doesn't care...

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Junio C Hamano· Jun 6, 2006, 21:39 UTC · re: Horst von Brand · lore

Re: [PATCH] Cleanup git-send-email.perl:extract_valid_email

Horst von Brand <vonbrand@inf.utfsm.cl> writes:
Show 7 quoted lines
>> > OK, but be careful as this (?:...) is an extended regexp (needs /x on
>> > match).
>
>> Are you sure about /x?
>
> The manual (perlop(1)) says you need /x to match extended regexps, and
> (?...) is the marker for such (perlre(1)).

I always had the impression that eXtended in the context to talk about /x was about ignoring whitespaces and forcing people to write \s (or perhaps \040) when they mean a whitespace and had nothing to do with (?...) stuff. Let me look up the fine manual.

Horst von Brand· Jun 6, 2006, 22:48 UTC · lore

Re: [PATCH] Cleanup git-send-email.perl:extract_valid_email

Junio C Hamano <junkio@cox.net> wrote:
Show 8 quoted lines
> Horst von Brand <vonbrand@inf.utfsm.cl> writes:
> >> > OK, but be careful as this (?:...) is an extended regexp (needs /x on
> >> > match).
> >
> >> Are you sure about /x?
> >
> > The manual (perlop(1)) says you need /x to match extended regexps, and
> > (?...) is the marker for such (perlre(1)).
Show 5 quoted lines
> I always had the impression that eXtended in the context to talk
> about /x was about ignoring whitespaces and forcing people to
> write \s (or perhaps \040) when they mean a whitespace and had
> nothing to do with (?...) stuff.  Let me look up the fine
> manual.

You might be right... and it even sounds sensible; but both (?...) stuff and the ignoring of space is described as extended here.

Note that \s is a space character (' ', '\t', ...), which is not the same as \040 (and that one assumes ASCII...).

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513
Horst H. von Brand· Oct 10, 2006, 14:25 UTC · lore

Re: [PATCH] gitweb: Show project README if available

Junio C Hamano <junkio@cox.net> wrote:
[...]
> Also we might want to consider using this file (or description)
> for git-daemon "motd" action if we were to enhance it.  I
> remember that early days of git-daemon some people wanted to
> have motd.

I consider motd to be a system-wide property, not of a particular project/repository...

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
Horst H. von Brand· Oct 10, 2006, 20:54 UTC · lore

Junio's wishes [Was: Re: Approxidate licensing]

Junio C Hamano <junkio@cox.net> wrote:
Show 12 quoted lines
> My wishes about the code I write for this project is very
> simple:
> 
>      If you improve my code that had helped you to make it help
>      you even better, I would like to have that change back, so
>      that your change would help me the same way as it helped
>      you.
> 
> The readers may have noticed that I have slight problem with
> GPLv2; in my wish it does not matter if you distribute the
> result or not.  And I am selfish.  It is not about helping my
> users, but about helping me ;-).

There is a small practical problem with that: How would you find out I'm using a modified version of your code internally? Also, the "distribution" part of GPLv2 is a useful filter: Only such modifications that are worthwhile to distribute get back, not each and every corner I paint myself into while playing around.

All in all, a nice balance, IMVHO.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
Linus Torvalds· Oct 10, 2006, 22:12 UTC · re: Horst H. von Brand · lore

Re: Junio's wishes [Was: Re: Approxidate licensing]

On Tue, 10 Oct 2006, Horst H. von Brand wrote:
Show 6 quoted lines
>
> There is a small practical problem with that: How would you find out I'm
> using a modified version of your code internally? Also, the "distribution"
> part of GPLv2 is a useful filter: Only such modifications that are
> worthwhile to distribute get back, not each and every corner I paint myself
> into while playing around.

Hey, I obviously agree that the GPLv2 is a good license, but at the same time, I think too many people tend to think _just_ about legal issues.

Sometimes the wishes of an author should matter, regardless of whether there is any law that forces you to do so. So I personally think a license that says: "if you improve this, give out the improvements regardless of whether you distribute things further or not" is a nice sentiment, and should be honored, regardless of whether you can legally enforce any such private tinkering or not.

			Linus
Horst H. von Brand· Oct 13, 2006, 18:05 UTC · lore

Re: [PATCH 2/2] git-repack: -b to pass --delta-base-offset

Junio C Hamano <junkio@cox.net> wrote:
> This new option makes the resulting pack express the delta base
> with more compact "offset" format.
> 
> Signed-off-by: Junio C Hamano <junkio@cox.net>
[...]
Show 10 quoted lines
> @@ -35,6 +35,12 @@ OPTIONS
>  	about people fetching via dumb protocols from it.  Use
>  	with '-d'.
>  
> +-b::
> +	Pass the `--delta-base-offset` to `git pack-objects`;
> +	see gitlink:git-pack-objects[1].  Do not use this option
> +	if you want the repository to be accessible by older
> +	versions of git.
> +
Need to tell which version is the cutoff (say before 1.4.3 won't work).
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
Nicolas Pitre· Oct 13, 2006, 18:29 UTC · re: Horst H. von Brand · lore

Re: [PATCH 2/2] git-repack: -b to pass --delta-base-offset

On Fri, 13 Oct 2006, Horst H. von Brand wrote:
Show 20 quoted lines
> Junio C Hamano <junkio@cox.net> wrote:
> > This new option makes the resulting pack express the delta base
> > with more compact "offset" format.
> > 
> > Signed-off-by: Junio C Hamano <junkio@cox.net>
> 
> [...]
> 
> > @@ -35,6 +35,12 @@ OPTIONS
> >  	about people fetching via dumb protocols from it.  Use
> >  	with '-d'.
> >  
> > +-b::
> > +	Pass the `--delta-base-offset` to `git pack-objects`;
> > +	see gitlink:git-pack-objects[1].  Do not use this option
> > +	if you want the repository to be accessible by older
> > +	versions of git.
> > +
> 
> Need to tell which version is the cutoff (say before 1.4.3 won't work).
Before and including 1.4.3 actually.  

Oh and the description should be augmented with "... if you want the repository to be accessible by older versions of git when _not_ using the native GIT protocol." as the native protocol is able to select between either format on the fly regardless of the on-disk pack format.

Nicolas
Horst H. von Brand· Oct 15, 2006, 14:52 UTC · lore

Re: Recent and near future backward incompatibilities

Junio C Hamano <junkio@cox.net> wrote:
> It was brought to my attention that the public git.git
> repository cannot be cloned with older versions of git. [...]

There seem to be a bunch of incompatible changes comming up... how about scheduling them for a 2.0 version, soon(ish)?

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
Horst H. von Brand· Oct 20, 2006, 12:31 UTC · lore

Re: [ANNOUNCE] GIT 1.4.3

Junio C Hamano <junkio@cox.net> wrote:
> The latest feature release GIT 1.4.3 is available at the usual
> places:
[...]
>  rename builtin-cat-file.c => builtin-cat-file.c (0%)
Huh?!
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
Horst H. von Brand· Oct 26, 2006, 01:48 UTC · lore

Re: Combined diff format documentation

Junio C Hamano <junkio@cox.net> wrote:
> Jakub Narebski <jnareb@gmail.com> writes:
[...]
> > 5. Hunk header is also modified: in ordinary diff we have
> > ...
> >    It might be not obvoious that we have (number of parents + 1) '@'
> >    characters in chunk header for combined dif format.
> Correct.  This was done to prevent people from accidentally
> feeding it to "patch -p1".  In other words, we wanted to make it
> so obvious that it is _not_ a patch.

It isn't, really... perhaps it should be made /more/ obvious (not use @ but e.g. &, ...)?

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Junio C Hamano· Oct 26, 2006, 03:04 UTC · re: Horst H. von Brand · lore

Re: Combined diff format documentation

"Horst H. von Brand" <vonbrand@inf.utfsm.cl> writes:
Show 6 quoted lines
>> Correct.  This was done to prevent people from accidentally
>> feeding it to "patch -p1".  In other words, we wanted to make it
>> so obvious that it is _not_ a patch.
>
> It isn't, really... perhaps it should be made /more/ obvious (not use @ but
> e.g. &, ...)?

Eh, sorry, what I meant was "obvious to the tool", so "patch" would take notice.

Horst H. von Brand· Oct 29, 2006, 19:03 UTC · lore

Re: Generating docu in 1.4.3.3.g01929

Junio C Hamano <junkio@cox.net> wrote:
[...]
Show 12 quoted lines
> and here is what I have:
> 
>    asciidoc-7.0.2-3.fc6
>    xmlto-0.0.18-13.1
>    python-2.4.3-18.fc6
>    docbook-dtds-1.0-30.1
>    package docbook-xsl is not installed
>    flex-2.5.4a-41.fc6
>    libxslt-1.1.17-1.1
>    passivetex-1.25-5.1.1
>    util-linux-2.13-0.44.fc6
>    w3m-0.5.1-14.1
I've got:

asciidoc-7.0.2-3.fc6 xmlto-0.0.18-13.1 python-2.4.4-1.fc7 docbook-dtds-1.0-30.1 package docbook-xsl is not installed flex-2.5.4a-41.fc6 libxslt-1.1.18-1 passivetex-1.25-5.1.1 util-linux-2.13-0.44.fc6 w3m-0.5.1-14.1

> "rpm -q --whatprovides docbook-xsl" says:
> 
>    docbook-style-xsl-1.69.1-5.1
docbook-style-xsl-1.69.1-5.1
Differences are (mine (Junio's)):

python-2.4.4-1.fc7 (python-2.4.3-18.fc6) libxslt-1.1.18-1 (libxslt-1.1.17-1.1)

libxslt requires libxml2:
libxml2-2.6.27-1 (Fedora 6 has libxml2-2.6.26-2.1.1)
Getting the Fedora 6 libxslt (Junio's) and redoing git gives no errors.

Judging from the libxslt changelog <http://xmlsoft.org/XSLT/news.html> they tightened up the processing, so I'd guess asciidoc is generating fishy XML or xmlto is broken. I've no clue here... somebody knowledgeable who can take a closer look or otherwise lend me a hand?

Thanks!
PS: I get similar errors with tig...
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
Horst H. von Brand· Nov 6, 2006, 16:46 UTC · lore

Re: [PATCH] git-pickaxe -C -C -C

Junio C Hamano <junkio@cox.net> wrote:
> Three -C options makes the command to look for copied lines from _any_
> existing file in the parent commit, not just changed files.
IMHO, this is horrible UI.

-C is one thing -C -C is another -C -C -C is still another?

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
Junio C Hamano· Nov 6, 2006, 17:25 UTC · re: Horst H. von Brand · lore

Re: [PATCH] git-pickaxe -C -C -C

"Horst H. von Brand" <vonbrand@inf.utfsm.cl> writes:
Show 9 quoted lines
> Junio C Hamano <junkio@cox.net> wrote:
>> Three -C options makes the command to look for copied lines from _any_
>> existing file in the parent commit, not just changed files.
>
> IMHO, this is horrible UI.
>
> -C        is one thing
> -C -C     is another
> -C -C -C  is still another?

I think of it as "-v" vs "-v -v" vs "-v -v -v" some programs use to give you increasing levels of verbosity.

Triple-C version is a kind of joke and not to be integrated (although it seems to work as advertised, it is inpractically slow), so it really is between -C vs -C -C, but certainly I am open to better ways of specifying the current -C/-C -C options.

Horst H. von Brand· Nov 15, 2006, 21:13 UTC · lore

Re: Sometimes "Failed to find remote refs" means "try git-fetch --no-tags"

Junio C Hamano <junkio@cox.net> wrote:
[...]
> However "fetch --no-tags" from http upstream is a band-aid to
> hide that the upstream repository has stale info/refs, and I do
> not think we would want to encourage the band-aid.  Rather, the
> message should say "yell loudly at the repository owner" ;-).
I'm seeing this gem here:
  [vonbrand@laptop13 git]$ git pull
  fatal: read error (Connection reset by peer)
  Fetch failure: git://git.kernel.org/pub/scm/git/git.git
  fatal: read error (Connection reset by peer)
  Failed to find remote refs
  No changes.
Who shall I yell at? ;-)

Seriously, this is broken. I get 4 different error messages, plus a (reassuring?) "No changes". Yes, I know this is what I'll see if the machine is overloaded.

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Horst H. von Brand· Nov 20, 2006, 17:00 UTC · lore

Re: [PATCH] git-merge: make it usable as the first class UI

Junio C Hamano <junkio@cox.net> wrote:
[...]
Show 18 quoted lines
> -- >8 --
> [PATCH] git-merge: make it usable as the first class UI
> 
> This teaches the oft-requested syntax
> 
> 	git merge $commit
> 
> to implement merging the named commit to the current branch.
> This hopefully would make "git merge" usable as the first class
> UI instead of being a mere backend for "git pull".
> 
> Most notably, $commit above can be any committish, so you can
> say for example:
> 
> 	git merge js/shortlog~2
> 
> to merge early part of a topic branch without merging the rest
> of it.

"Early part", i.e., branch js/shortlog up to js/shortlog~2 or just that one commit?

> A custom merge message can be given with the new --message=<msg>
> parameter.  The message is prepended in front of the usual
> "Merge ..." message autogenerated with fmt-merge-message.
Why not -m too (consistency!)?
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Junio C Hamano· Nov 20, 2006, 19:52 UTC · re: Horst H. von Brand · lore

Re: [PATCH] git-merge: make it usable as the first class UI

"Horst H. von Brand" <vonbrand@inf.utfsm.cl> writes:
Show 10 quoted lines
>> Most notably, $commit above can be any committish, so you can
>> say for example:
>> 
>> 	git merge js/shortlog~2
>> 
>> to merge early part of a topic branch without merging the rest
>> of it.
>
> "Early part", i.e., branch js/shortlog up to js/shortlog~2 or just that one
> commit?
"Early part up to that commit" -- this is not a cherry pick.
Show 5 quoted lines
>> A custom merge message can be given with the new --message=<msg>
>> parameter.  The message is prepended in front of the usual
>> "Merge ..." message autogenerated with fmt-merge-message.
>
> Why not -m too (consistency!)?
That form also is accepted, I think.
Horst H. von Brand· Nov 26, 2006, 23:05 UTC · lore

Re: [PATCH] Make logAllRefUpdates true by default

Junio C Hamano <junkio@cox.net> wrote:
[...]
Show 5 quoted lines
> Having thought about all the above, I think the event to create
> distribution/synchronization point repositories are rare enough
> and the simplest and cleanest way might be to make it default
> and add a --without-reflog option to the command, and forget
> about the guessing.

Looks sanest. I hate stuff that tries to outguess me by being "smart" (part of the reason I love Unixy systems).

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Horst H. von Brand· Dec 14, 2006, 23:52 UTC · lore

Re: What's in git.git (stable)

Junio C Hamano <junkio@cox.net> wrote:
[...]
> In general the principle ought to be not to say anything if the
> command does exactly what it was told to do successfully, unless
> the operation is expected to take longer than other normal
> commands in the git suite, or something that is rarely used.
Nodz. Just hoary Unix tradition.
> Perhaps under "[user] expert" control.

Nope. You'd be surprised what kind of people consider themselves "experts"... I'd prefer adding -v/--verbose flags to all commands (if nothing else, for symmetry's sake), have a '[default] --verbose' controlling this across the board (perhaps also '[default "command"] --verbose'), with '[default]' setting default switches.

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
Jakub Narebski· Dec 15, 2006, 10:53 UTC · re: Horst H. von Brand · lore

Re: What's in git.git (stable)

Horst H. von Brand wrote:
Show 7 quoted lines
>> Perhaps under "[user] expert" control.
> 
> Nope. You'd be surprised what kind of people consider themselves
> "experts"... I'd prefer adding -v/--verbose flags to all commands (if
> nothing else, for symmetry's sake), have a '[default] --verbose' controlling
> this across the board (perhaps also '[default "command"] --verbose'), with
> '[default]' setting default switches.

Nice idea... but configuration variables have to have name. So it would be

  $ git repo-config defaults.command --verbose
resulting in
  [defaults]
        command = --verbose
-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
Horst H. von Brand· Dec 27, 2006, 12:06 UTC · lore

Re: [RFH] An early draft of v1.5.0 release notes

Junio C Hamano <junkio@cox.net> wrote:
> This is still rough, but I think we have a pretty good idea what
> will and what won't be in v1.5.0 by now, and end-of-year is a
> good slow time to summarize what we have done.

Could somebody please summarize how to "upgrade" a repository to the new layout? This has got my head spinning... and I'm /not/ cloning the various repos I've got here just to take advantage of the changes.

Thanks!
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
Junio C Hamano· Dec 28, 2006, 02:58 UTC · re: Horst H. von Brand · lore

Re: [RFH] An early draft of v1.5.0 release notes

"Horst H. von Brand" <vonbrand@inf.utfsm.cl> writes:
Show 8 quoted lines
> Junio C Hamano <junkio@cox.net> wrote:
>> This is still rough, but I think we have a pretty good idea what
>> will and what won't be in v1.5.0 by now, and end-of-year is a
>> good slow time to summarize what we have done.
>
> Could somebody please summarize how to "upgrade" a repository to the new
> layout?  This has got my head spinning... and I'm /not/ cloning the
> various repos I've got here just to take advantage of the changes.

The old layout was to map remote branch $B to local tracking branch .git/refs/heads/$B, unless $B == 'master' in which case it was mapped to .git/refs/heads/origin (and I think we discarded 'origin' at remote).

Each remote branch $B is tracked with .git/refs/remote/origin/$B in the new layout.

And you will get something like this in your .git/config:
    [remote "origin"]
            url = git://git.kernel.org/pub/scm/.../torvalds/linux-2.6.git/
            fetch = refs/heads/*:refs/remotes/origin/*
    [branch "master"]
            remote = origin
            merge = refs/heads/master

The first section defines what the token 'origin' means when you say "git pull origin" or "git fetch origin". remote.origin.url defines the URL to fetch/pull from, and remote.origin.fetch supplies the refspecs you omitted from the command line (fetch everything from refs/heads/ hierarchy of remote and store them in my refs/remotes/origin/ hierarchy).

The second section defines what happens when you say "git pull" or "git fetch" while on your "master" branch. It tells that you meant to say "git pull origin" or "git fetch origin" when you omitted the URL argument from the command line. And because you are also omitting the refspecs, remote.origin.fetch kicks in and slurps all the branches from the remote side and stores them in your refs/remotes/origin/ hierarchy. When the command was "git pull", it also says the merge that follows the fetch is to merge the 'master' branch at the remote side (which happens to be copied to your remotes/origin/master only because you have remote.origin.fetch) into your current branch (which is "master", because this section is about what happens while you are on your "master" branch).

So for an existing repository that does not use the separate remotes layout, you can easily convert that by hand if you wanted to by:

 - Move tracking branches from refs/heads/* to
   refs/remotes/origin/*,
 - create the config section like the above in .git/config, and
 - remove .git/remotes/origin when you are done.
Jakub Narebski· Dec 28, 2006, 11:50 UTC · re: Junio C Hamano · lore

Re: [RFH] An early draft of v1.5.0 release notes

[Cc: git@vger.kernel.org, Junio C Hamano <junkio@cox.net>,
 "Horst H. von Brand" <vonbrand@inf.utfsm.cl>]
Junio C Hamano wrote:
Show 15 quoted lines
> "Horst H. von Brand" <vonbrand@inf.utfsm.cl> writes:
> 
>> Junio C Hamano <junkio@cox.net> wrote:
>>> This is still rough, but I think we have a pretty good idea what
>>> will and what won't be in v1.5.0 by now, and end-of-year is a
>>> good slow time to summarize what we have done.
>>
>> Could somebody please summarize how to "upgrade" a repository to the new
>> layout?  This has got my head spinning... and I'm /not/ cloning the
>> various repos I've got here just to take advantage of the changes.
> 
> The old layout was to map remote branch $B to local tracking
> branch .git/refs/heads/$B, unless $B == 'master' in which case
> it was mapped to .git/refs/heads/origin (and I think we
> discarded 'origin' at remote).

How to discard 'origin' in the new wildcard / globbing remote config? IIRC there was proposal to use '-' or '!' to exclude branch from fetching, but no code...

[...]
>  - create the config section like the above in .git/config, and
You can use contrib/remotes2config.sh script...
>  - remove .git/remotes/origin when you are done.
 
...which saves remotes/ under remotes.old/
-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
Horst H. von Brand· Dec 28, 2006, 01:35 UTC · lore

Re: http git and curl 7.16.0

Junio C Hamano <junkio@cox.net> wrote:
Show 29 quoted lines
> "Horst H. von Brand" <vonbrand@inf.utfsm.cl> writes:
> > Sven Verdoolaege <skimo@kotnet.org> wrote:
> >> On Sat, Nov 18, 2006 at 08:07:08AM +0400, George Sherwood wrote:
> >> > I seem to be having a problem doing an http checkout with git built
> >> > with curl 7.16.0 enabled.  If I build against curl 7.16.0 and try a
> >> > clone, I get:
> > ...
> >> > git clone http://dmlb2000.homelinux.org/~dmlb2000/git-repos/local/castfs.git
> >> > error: Unable to start request error: Could not interpret heads/master
> >> > as something to pull
> >> > 
> >> > If I rebuild git against curl 7.15.5 then I get:
> >> [..]
> >> > and the checkout finishes.
> >> > 
> >> > Has any one else seen this?
> >
> >> FWIW, I've seen the same with curl 7.16.0 on a Solaris 9 machine.
> >> It worked fine with curl 7.15.0.
> >
> > It works fine for me on Aurora Corona (sparc) with curl-7.15.5-1.al3, while
> > it fails as above on Fedora rawhide (i386) with curl-7.16.0-4.fc7.
> >
> > Furthermore, with new curl pulling from HTTP repos when there are updates
> > gives double free errors and a crash.
> 
> Hmmm.  Could somebody please run http-fetch under gdb and see
> where it breaks?  The exact command line you need to use would
> be obtainable by running "sh -x git-clone" once.
It crashes the kernel for me here :-(

I tried to chop down a tig repo a few commits from the top for checking out the crash I'm seeing (only when pulling from a remote repo by HTTP, and it is not up to date here) by doing:

  cp -r tig tig.tst
  cd tig.tst
  git reset --hard HEAD~3
  git prune

But now git-pull /doesn't/ fetch anything, so I see no crash. What am I doing wrong here?

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
Shawn Pearce· Dec 28, 2006, 01:42 UTC · re: Horst H. von Brand · lore

Re: http git and curl 7.16.0

"Horst H. von Brand" <vonbrand@inf.utfsm.cl> wrote:
Show 11 quoted lines
> I tried to chop down a tig repo a few commits from the top for checking out
> the crash I'm seeing (only when pulling from a remote repo by HTTP, and it
> is not up to date here) by doing:
> 
>   cp -r tig tig.tst
>   cd tig.tst
>   git reset --hard HEAD~3
>   git prune
> 
> But now git-pull /doesn't/ fetch anything, so I see no crash. What am I
> doing wrong here?

Another ref points at the same commit as what ORIG_HEAD points at, so there wasn't anything to fetch as you already had that commit.

Its probably a tag, a ref under refs/remotes, or another branch...
-- 
Shawn.
Horst H. von Brand· Dec 29, 2006, 12:37 UTC · lore

Re: [PATCH/RFT] Work around http-fetch built with cURL 7.16.0

Junio C Hamano <junkio@cox.net> wrote:
Show 13 quoted lines
> It appears that curl_easy_duphandle() from libcurl 7.16.0
> returns a curl session handle which fails GOOD_MULTI_HANDLE()
> check in curl_multi_add_handle().  This causes fetch_ref() to
> fail because start_active_slot() cannot start the request.
> 
> For now, check for 7.16.0 to work this issue around.
> 
> Signed-off-by: Junio C Hamano <junkio@cox.net>
> ---
> 
>  * I think people who were having trouble with cURL 7.16.0 want
>    to have the issue resolved before v1.5.0-rc1.  Please test
>    and report, or else ;-).
Checked it out. Now clone and pull both work here.
Thanks!
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
Horst H. von Brand· Jan 8, 2007, 13:30 UTC · lore

Re: [ANNOUNCE] GIT 1.4.4.4

Junio C Hamano <junkio@cox.net> wrote:
Show 14 quoted lines
> The latest maintenance release GIT 1.4.4.4 is available at the
> usual places:
> 
>   http://www.kernel.org/pub/software/scm/git/
> 
>   git-1.4.4.4.tar.{gz,bz2}			(tarball)
>   git-htmldocs-1.4.4.4.tar.{gz,bz2}		(preformatted docs)
>   git-manpages-1.4.4.4.tar.{gz,bz2}		(preformatted docs)
>   RPMS/$arch/git-*-1.4.4.4-1.$arch.rpm	(RPM)
> 
> This is to push out a handful bugfixes since 1.4.4.3.
> 
> On the 'master' development front, the stabilization for v1.5.0
> will start soonish.

I get git version 1.4.4.4.g9a5e4 (used to be 1.5.0.rc0.gXXXX) on the msater branch now?

-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
Horst H. von Brand· Jan 12, 2007, 20:15 UTC · lore

Re: 1.5.0.rc1.g4494: Can't use a bare GIT_DIR to add

Junio C Hamano <junkio@cox.net> wrote:
Show 14 quoted lines
> "Horst H. von Brand" <vonbrand@inf.utfsm.cl> writes:
> 
> > I tried this:
> >   
> >   mkdir xyz
> >   cd xyz
> >   git --git-dir=../xyz.git   
> >      # Initialized empty Git repository in ../xyz.git/
> >   echo Junk > file-a
> >   git --git-dir=../xyz.git add .
> >      # fatal: add cannot be used in a bare git directory
> >
> > I expected that "GIT_DIR is bare, over there, stuff is here" works the same
> > as "GIT_DIR is .git, right here among stuff".
> Sheesh, why didn't you speak out earlier while the discussion
> was on (I am not serious, git mailing list is still moving too
> fast for people to be always on top of)?
Because I just noticed :-(
> Now, seriously.
[...]
> You said "I tried".  Is this something you do in real life?

There was a discussion going on about importing several tarballs (one version after the other) into git. If you want to just export the result, not futz around in it, it leads naturally to doing something like:

  mkdir /base/test.git
  cd /base/test.git; git --bare init
  for v in 0.8.0.99 0.99a 0.99b 1.0 1.1 1.2.0 1.2.1 1.2.2; do
    cd /work
    tar zxf test-$v.tar.gz
    cd test-$v
    git --git-dir=/base/test.git add .
    git --git-dir=/base/test.git commit -a "Version $v"
    git --git-dir=/base/test.git tag v$v
    cd /work
    rm -rf test-$v
  done
Show 5 quoted lines
> This _is_ a regression, as we are checking something we did not
> check before and refusing to work in cases where we did.  But I
> am not sure if reverting to lift the safety (for that matter,
> introducing the third "depends" alternative) is better than the
> latest behaviour.

It grates me somewhat that there isn't a clean way of saying "My .git stuff is over there". No big deal, really.

And it is not a "depends", AFAICS: GIT_DIR says where to stash stuff, users had better know what they are doing in that case... so perhaps allow anything if GIT_DIR is set?

Show 11 quoted lines
> For one thing, you could (sometime before the "git add ." and do
> this only once) do:
> 
> 	$ ln -s ../xyz.git .git
> 
> and that would make all the future git operation work without
> the --git-dir parameter (or GIT_DIR environment) in xyz
> directory.  An added benefit is that it would even allow git
> command to work from a subdirectory of xyz (specifying GIT_DIR
> or --git-dir means you are bypassing the discovery for the top
> of the working tree, so you have to always be at the top).
For this particular case this is no real help.
But no big deal to me. Still trying to wrap my brain aound git, that's all.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513
Junio C Hamano· Jan 12, 2007, 21:33 UTC · re: Horst H. von Brand · lore

Re: 1.5.0.rc1.g4494: Can't use a bare GIT_DIR to add

"Horst H. von Brand" <vonbrand@inf.utfsm.cl> writes:
Show 14 quoted lines
> Junio C Hamano <junkio@cox.net> wrote:
> ...
>> This _is_ a regression, as we are checking something we did not
>> check before and refusing to work in cases where we did.  But I
>> am not sure if reverting to lift the safety (for that matter,
>> introducing the third "depends" alternative) is better than the
>> latest behaviour.
>
> It grates me somewhat that there isn't a clean way of saying "My .git stuff
> is over there". No big deal, really.
>
> And it is not a "depends", AFAICS: GIT_DIR says where to stash stuff, users
> had better know what they are doing in that case... so perhaps allow
> anything if GIT_DIR is set?

One problem I have with that is that doing so would make it harder to prevent pushing into the current branch of a repository with working tree from happening later.

In the "sequence of tarballs" example, I wonder why you cannot do something like:

	git init-db
	for tarball
        do
        	tar xf $tarball
                # if it extracts in a wrong directory, move them
                # up first ...
                git add .
                git commit -a
		git rm -r .
	done

← back to recent threads