Re: My Itchlist

2005-08-05 Thread Johannes Schindelin
Hi,

On Fri, 5 Aug 2005, Linus Torvalds wrote:

> On Fri, 5 Aug 2005, Junio C Hamano wrote:
> > 
> > - Teach fetch-pack reference renaming.
> 
> Well, the fetch side at least needs it less.
> 
> Right now the renaming means that you can only really fetch _one_ head at 
> a time, but that's at least a fairly common and important case, and you 
> can do the rest from there.
> 
> And doing only one means that git-fetch-pack can just return the result
> SHA1 of the head it was asked to fetch. In fact, even that could just be
> extended to returning multiple heads: just return each SHA1 in order. No 
> "renaming" necessary, since it's then up to the user what to do with the 
> results.

I think that we need a method to do a push in reverse: If a central 
repository has several branches, I might want to pull just those branches 
where the local head is a strict parent of the remote side, and get 
complains for the others. And maybe reference naming comes as a freebie 
with that.

Ciao,
Dscho

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


[PATCH] Fix ref_newer() in send-pack.

2005-08-05 Thread Junio C Hamano
When more than two references need to be checked with
ref_newer() function, the second and later calls did not work
correctly.  This was because the later calls found commits
retained by the "struct object" layer that still had smudges
made by earlier calls.

Signed-off-by: Junio C Hamano <[EMAIL PROTECTED]>
---

 send-pack.c |   27 ++-
 1 files changed, 22 insertions(+), 5 deletions(-)

51b0fca012310910783de76f2eacfd10b0f2f9fc
diff --git a/send-pack.c b/send-pack.c
--- a/send-pack.c
+++ b/send-pack.c
@@ -105,12 +105,23 @@ static int pack_objects(int fd, struct r
return 0;
 }
 
+static void unmark_and_free(struct commit_list *list, unsigned int mark)
+{
+   while (list) {
+   struct commit_list *temp = list;
+   temp->item->object.flags &= ~mark;
+   list = temp->next;
+   free(temp);
+   }
+}
+
 static int ref_newer(const unsigned char *new_sha1,
 const unsigned char *old_sha1)
 {
struct object *o;
struct commit *old, *new;
-   struct commit_list *list;
+   struct commit_list *list, *used;
+   int found = 0;
 
/* Both new and old must be commit-ish and new is descendant of
 * old.  Otherwise we require --force.
@@ -127,14 +138,20 @@ static int ref_newer(const unsigned char
 
if (parse_commit(new) < 0)
return 0;
-   list = NULL;
+
+   used = list = NULL;
commit_list_insert(new, &list);
while (list) {
new = pop_most_recent_commit(&list, 1);
-   if (new == old)
-   return 1;
+   commit_list_insert(new, &used);
+   if (new == old) {
+   found = 1;
+   break;
+   }
}
-   return 0;
+   unmark_and_free(list, 1);
+   unmark_and_free(used, 1);
+   return found;
 }
 
 static struct ref *local_refs, **local_tail;

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


[PATCH] Making CFLAGS compilant with GNU Coding Standards

2005-08-05 Thread Pavel Roskin
Hello!

Quoting GNU Coding Standards ("info standards"):

"If there are C compiler options that _must_ be used for proper
compilation of certain files, do not include them in `CFLAGS'.  Users
expect to be able to specify `CFLAGS' freely themselves."

This patch renames COPTS to CFLAGS, because it's COPTS that was user
overridable.  Also, -Wall is moved there because it's optional.  What
was CFLAGS is now ALL_CFLAGS, which users should not override.

Defines are added to DEFINES.  Since ALL_CFLAGS is recursively expanded,
it uses the final value of DEFINES.

Implicit rules are made explicit since the implicit rules use CFLAGS
rather than ALL_CFLAGS.  I believe that serious projects should not rely
on implicit rules anyway.  Percent rules are used because they are used
already and because they don't need the .SUFFIXES target.

Signed-off-by: Pavel Roskin <[EMAIL PROTECTED]>

diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -34,8 +34,8 @@
 
 GIT_VERSION=0.99.3
 
-COPTS?=-g -O2
-CFLAGS+=$(COPTS) -Wall $(DEFINES)
+CFLAGS ?= -g -O2 -Wall
+ALL_CFLAGS = $(CFLAGS) $(DEFINES)
 
 prefix=$(HOME)
 bindir=$(prefix)/bin
@@ -125,7 +125,7 @@ ifndef NO_OPENSSL
LIB_OBJS += epoch.o
OPENSSL_LIBSSL=-lssl
 else
-   CFLAGS += '-DNO_OPENSSL'
+   DEFINES += '-DNO_OPENSSL'
MOZILLA_SHA1=1
OPENSSL_LIBSSL=
 endif
@@ -146,8 +146,8 @@ endif
 endif
 endif
 
-CFLAGS += '-DSHA1_HEADER=$(SHA1_HEADER)'
-CFLAGS += '-DDEFAULT_GIT_TEMPLATE_ENVIRONMENT="$(etcgitdir)/templates"'
+DEFINES += '-DSHA1_HEADER=$(SHA1_HEADER)'
+DEFINES += '-DDEFAULT_GIT_TEMPLATE_ENVIRONMENT="$(etcgitdir)/templates"'
 
 
 
@@ -156,9 +156,15 @@ CFLAGS += '-DDEFAULT_GIT_TEMPLATE_ENVIRO
 all: $(PROG)
 
 
+%.o: %.c
+   $(CC) -c $(ALL_CFLAGS) $<
+
+%.o: %.S
+   $(CC) -c $(ALL_CFLAGS) $<
+
 .PRECIOUS: %.o
 git-%: %.o $(LIB_FILE)
-   $(CC) $(CFLAGS) -o $@ $(filter %.o,$^) $(LIBS)
+   $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIBS)
 
 git-http-pull: pull.o
 git-local-pull: pull.o
@@ -185,13 +191,13 @@ test: all
$(MAKE) -C t/ all
 
 test-date: test-date.c date.o
-   $(CC) $(CFLAGS) -o $@ test-date.c date.o
+   $(CC) $(ALL_CFLAGS) -o $@ test-date.c date.o
 
 test-delta: test-delta.c diff-delta.o patch-delta.o
-   $(CC) $(CFLAGS) -o $@ $^
+   $(CC) $(ALL_CFLAGS) -o $@ $^
 
 check:
-   for i in *.c; do sparse $(CFLAGS) $(SPARSE_FLAGS) $$i; done
+   for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i; done
 
 
 

-- 
Regards,
Pavel Roskin

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


Re: gitk "hyperlinks" (was Re: Display of merges in gitk)

2005-08-05 Thread Kay Sievers
On Fri, Aug 05, 2005 at 07:37:41AM -0700, Linus Torvalds wrote:
> 
> [ Also Kay Sievers, because the clickability thing sounds like a 
>   potentially good thing for webgit too.. ]
...
> For 2.6.13 we've been reverting some stuff lately, to make sure we get a 
> stable release. That's fine, and when I revert something I try to mention 
> the commit ID of the thing I revert in the message. Apparently others do 
> too, as indicated by a patch I just got from Petr Vandovec. So we've got 
> for example:
> 
> Undo: d8c4b4195c7d664baf296818bf756775149232d3
> 
> Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
...
> and when I use gitk, it would be just too damn cool for words if I could 
> easily follow the SHA1's mentioned in the commit message.
...

Damn cool? No problem. :)
  
http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=403fe5ae57c831968c3dbbaba291ae825a1c5aaa

Kay
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: My Itchlist

2005-08-05 Thread Linus Torvalds


On Fri, 5 Aug 2005, Junio C Hamano wrote:
> 
> - Teach fetch-pack reference renaming.

Well, the fetch side at least needs it less.

Right now the renaming means that you can only really fetch _one_ head at 
a time, but that's at least a fairly common and important case, and you 
can do the rest from there.

And doing only one means that git-fetch-pack can just return the result
SHA1 of the head it was asked to fetch. In fact, even that could just be
extended to returning multiple heads: just return each SHA1 in order. No 
"renaming" necessary, since it's then up to the user what to do with the 
results.

In fact, many users don't even want to write the result to a ref _at_all_: 
they just use the raw name - no refs - to merge.

So arguably it is _wrong_ to make git-fetch-pack write refs, because that 
just leads to the problem with temporary refs etc. "Local variables are 
good".

> These are not 1.0 showstopper items but what I personally would
> love to see.
> 
> - teach mailsplit/mailinfo basic MIME (attachments and quoted-printable)
> 
>   Some people send patches in MIME quoted-printable.  I could
>   drop them on the floor and ask the sender to resend, but I've
>   been being a nice guy, which currently involves manual
>   intervention.

This really is a nasty problem. People add their own commentary etc, and 
the fact is, the maintainer _needs_ to edit it.

Otherwise you'll have people saying "Hi there, I really like this thing, 
but I have this problem which this patch fixes" etc, which is all very 
nice, but dammit, that's simply not changelog material.

Also, I definitely myself end up editing patches occasionally: fixing 
things up. Again, this is simply a major pain if the patch comes in as an 
attachment.

So there are tons of reasons to just try to teach people that attachments 
are painful. Much better to teach people not to use them than having 
people use them and the tools "working" with them.

> - teach git-apply "reverse" and possibly "fuzz".
> 
>   I think this might help Porcelain; currently they have to
>   interpret git extended diff headers themselves.

Reverse would definitely be useful. "fuzz" is really pretty dangerous. I 
think that once a a patch doesn't apply, you really want to have helper 
tools like a graphical "wiggle" etc, and that really means that it's not 
"git-apply", it's something totally different.

And quite frankly, if you have a tool that can handle unified diffs 
already, then extending it for the git rename stuff should be pretty easy. 
It's not like we haven't wanted renaming patches for at least a _decade_ 
already, it's just that nobody ever did them. 

So I'm hoping that git can act as a impetus for people to just finally 
have a standard way of saying "rename". EVERYBODY wants it. Anybody who 
ever sees a rename as a patch will always go "damn, it would be nice to 
have renames". And dammit, we have them, so let's try to push out the 
concept.

And if that means that we should use rename patches and let non-git users 
have some pain until they say "ok, ok, it's a good idea, I'll do it. 
Uncle, uncle!", then maybe the world will be a better place. It's not like 
they can't see how git-apply does it already ;)

Linus
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


My Itchlist

2005-08-05 Thread Junio C Hamano
Here is a short list of itches I would like to get scratched
before 1.0.  I may be forgetting something big, though, so if
your favorite feature request is not included in the list please
speak up.

- Teach send-pack to use get_sha1() on the source side.

  In addition to a pattern that matches one reference on the
  source side, we should be able to use anything get_sha1() can
  grok.  Hopefully I'll be looking into this over the weekend.

- Teach fetch-pack reference renaming.

  On the push side, send-pack now knows updating arbitrary
  remote references from local references.  We need something
  similar for fetching.  I personally do not feel we need it for
  cloning but my cursory reading of clone-pack indicates the
  command is meant to work reasonably even in an already
  populated repository.  If somebody have a good use case for
  it and a clean patch, I may be tempted to accept it.

- Glossary documentation Johannes Schindelin is working on.

  I think coming up with the concensus of terms would come
  fairly quickly on the list.  Updating docs to match the
  concensus may take some time.  Help is greatly appreciated.

- Makefile variables updates from Pasky.

  While I do not have objections to rename dest to DESTDIR and
  such Pasky proposes, I want to have a matching change to RPM
  and deb generation.  I can speak basic debian/rules, but I am
  reluctant to touch RPM side of the things.

  Whether we do the dest/DESTDIR rename or not, we need to tweak
  binary packaging anyway, or stop installing the default
  templates.  I can be talked into either way.


My tentative plan is for 0.99.4 to finish send-pack, 0.99.5
to enhance fetch-pack, 0.99.6 to finish the first pass for the
documentation updates and stabilizing the binary packaging.


These are not 1.0 showstopper items but what I personally would
love to see.

- teach mailsplit/mailinfo basic MIME (attachments and quoted-printable)

  Some people send patches in MIME quoted-printable.  I could
  drop them on the floor and ask the sender to resend, but I've
  been being a nice guy, which currently involves manual
  intervention.

- teach git-apply "reverse" and possibly "fuzz".

  I think this might help Porcelain; currently they have to
  interpret git extended diff headers themselves.

- commit template filler discussed with Pasky some time ago.

- "rev-list a...b" should mean "rev-list `merge-base a b`..b"

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


Re: Terminology

2005-08-05 Thread linux
> So what's the converse of "fetch" (to rename git-ssh-push to)? 
> Maybe "ship"?

The opposite of "fetch" is "throw" or "toss".
(Just avoid tossing cookies or off.)
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Use $DESTDIR instead of $dest

2005-08-05 Thread Junio C Hamano
Petr Baudis <[EMAIL PROTECTED]> writes:

> $DESTDIR is more usual during the build than $dest and is what is usually
> used in the makefiles, so let's use it too.

While I do not have much preference either way, I do not want to
make this kind of change without making corresponding changes to
the spec.in and debian/rules file in the same commit, or another
commit that immediately follow it.  And I wanted to do a 0.99.4
tomorrow, so I hope you would not mind if I placed this on
hold...

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


Re: Terminology

2005-08-05 Thread Johannes Schindelin
Hi,

On Fri, 5 Aug 2005, [EMAIL PROTECTED] wrote:

> On Fri, 5 Aug 2005, Linus Torvalds wrote:
> 
> > On Fri, 5 Aug 2005, Johannes Schindelin wrote:
> > 
> > >   - The files under $GIT_DIR/refs record object names, and are
> > > called "refs".  What is under refs/heads/ are called "heads",
> > > refs/tags/ "tags".  Typically, they are either object names
> > > of commit objects or tag objects that resolve to commit
> > > objects, but a tag can point at any object.
> > > 
> > > The tutorial never calls them "refs", but instead "references".
> > 
> > It might be worth saying explicitly that a reference is nothing but the 
> > same thing as a "object name" aka "sha1".
> 
> Well, it's an object name stored in a file. This adds a layer of 
> indirection and a meaningful name.

Yes.

> > So I'd vote for making the suggested definition official: "fetch" means
> > fetching the data, and "pull" means "fetch + merge". 
> 
> So what's the converse of "fetch" (to rename git-ssh-push to)? 
> Maybe "ship"?

I actually like "push". You know, not everybody agrees that "push" is the 
opposite of "pull"...

Ciao,
Dscho


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


Re: Terminology

2005-08-05 Thread Johannes Schindelin
Hi,

wow! What a long mail! But I probably deserved it, quoting that lengthy 
mail from Junio...

On Fri, 5 Aug 2005, Linus Torvalds wrote:

> On Fri, 5 Aug 2005, Johannes Schindelin wrote:
> > 
> > Tutorial says "cache" aka "index". Though technically, a cache
> > is the index file _plus_ the related objects in the object database.
> > git-update-cache.txt even makes the difference between the "index"
> > and the "directory cache".
> 
> I think we should globally rename it to "index".

Totally agree. The index is a central concept. But let's keep in mind -- 
and make future Documentation/ readers do the same -- that the index,
without the referenced objects in the objects database, is only a 
skeleton.

> The "directory cache" and later "cache" naming came from when I started
> doing the work - before git was even git at all, and had no backing store
> what-so-ever, I started out writing "cache.h" and "read-cache.c", and it
> was really first a trial at doing a totally SCM-neutral directory cache
> front-end.
> 
> You don't even see that in the git revision history, because that was 
> before git was self-hosting - the project was partly started to also work 
> as possibly just a fast front-end to something that wasn't as fast (ie 
> think something like a front-end to make "monotone" work better).
> 
> So the "directory cache" and "cache" naming comes from that historical 
> background: it was really started as a front-end cache, and in fact the 
> ".git" directory was called ".dircache" initially. You can see some of 
> that in the very earliest git releases: by then I had already done the 
> backing store, and the thing was already called "git", but the "dircache" 
> naming still remains in places.
> 
> For example, here's my "backup" target in the initial checkin:
> 
>   backup: clean
>   cd .. ; tar czvf dircache.tar.gz dir-cache
> 
> which shows that not only did I call the resulting tar file "dircache", 
> the directory I was developing stuff in was called "dir-cache" as well ;)
> 
> The index obviously ended up doing a lot more, and especially with the
> different stages it became much more than just a directory cache thing:  
> it's integral to how git does the fast part of a merge. So we should call
> it "index" and edit out the old "cache" and "director cache" naming
> entirely.

I quoted this entirely, for a good reason: Linus, one day you really 
should write a Wikibook about all the "small" projects you started. I 
still remember the words "I'm doing a (free) operating system (just a 
hobby, won't be big...". There's so much to be learnt about good 
engineering. And people do want to add there anecdotes to it.

> >   - the directory which corresponds to the top of the hierarchy
> > described in the index file; I've seen words like "working
> > tree", "working directory", "work tree" used.
> > 
> > The tutorial initially says "working tree", but then "working
> > directory". Usually, a directory does not include its
> > subdirectories, though. git-apply-patch-script.txt, git-apply.txt,
> > git-hash-object.txt, git-read-tree.txt
> > use "work tree". git-checkout-cache.txt, git-commit-tree.txt,
> > git-diff-cache.txt, git-ls-tree.txt, git-update-cache.txt contain
> > "working directory". git-diff-files.txt talks about a "working tree".
> 
> I think we should use "working tree" throughout, since "working directory" 
> is unix-speak for "pwd" and has a totally different meaning.

I hoped so much.

> >   - An index file can be in "merged" or "unmerged" state.  The
> > former is when it does not have anything but stage 0 entries,
> > the latter otherwise.
> 
> I think the "unmerged" case should be mentioned in the "cache entry" 
> thing, since it's really a per-entry state, exactly like "dirty/clean".
> 
> Then, explaining a "unmerged index" as being an index file with some 
> entries being unmerged makes more sense. 
> 
> As it is, the above "explains" an index file as being unmerged by talking 
> about "stage 0 entries", which in turn haven't been explained at all.

That's right. We probably should copy a bit from git-read-tree.txt, or at 
least reference it in the glossary.

> >   - A "tree object" can be recorded as a part of a "commit
> > object".  The tree object is said to be "associated with" the
> > commit object.
> > 
> > In diffcore.txt, "changeset" is used in place of "commit".
> 
> We really should use "commit" throughout. ex-BK users sometimes lip into
> "changeset" (which in turn is probably because BK had these per-file
> commits too - deltas), but there's no point in the distinction in git. A 
> commit is a commit.

That is, if you don't do "git-update-cache " (which is not 
possible with some porcelains).

Apart from that: I think that it is quite important to make the 
distinction between a "commit" and a "commit object". Newbies (in that 
case, people working with CVS are newbies to the concepts of git, too) 
tend understand better what yo

Re: Terminology

2005-08-05 Thread barkalow
On Fri, 5 Aug 2005, Linus Torvalds wrote:

> On Fri, 5 Aug 2005, Johannes Schindelin wrote:
> 
> >   - The files under $GIT_DIR/refs record object names, and are
> > called "refs".  What is under refs/heads/ are called "heads",
> > refs/tags/ "tags".  Typically, they are either object names
> > of commit objects or tag objects that resolve to commit
> > objects, but a tag can point at any object.
> > 
> > The tutorial never calls them "refs", but instead "references".
> 
> It might be worth saying explicitly that a reference is nothing but the 
> same thing as a "object name" aka "sha1".

Well, it's an object name stored in a file. This adds a layer of 
indirection and a meaningful name.

> So I'd vote for making the suggested definition official: "fetch" means
> fetching the data, and "pull" means "fetch + merge". 

So what's the converse of "fetch" (to rename git-ssh-push to)? 
Maybe "ship"?

-Daniel
*This .sig left intentionally blank*
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: gitk "hyperlinks" (was Re: Display of merges in gitk)

2005-08-05 Thread jepler
On Fri, Aug 05, 2005 at 07:37:41AM -0700, Linus Torvalds wrote:
> For 2.6.13 we've been reverting some stuff lately, to make sure we get a 
> stable release. That's fine, and when I revert something I try to mention 
> the commit ID of the thing I revert in the message. Apparently others do 
> too, as indicated by a patch I just got from Petr Vandovec. So we've got 
> for example:
[snipped]

The following code worked for me on a toy commit.  I'm not sure the regular
expression in linkcommits is right if the SHA1 is followed by a colon or a 
comma,
as I noticed it was in your examples.  If it doesn, then removing the [[:<:]]
and [[:>:]] will probably fix it.

Things that look like SHA1s are highlighted even if they don't actually exist.

There is probably a "more right" place to do the '$ctext tag bind Commit' 
commands
but I didn't find it right away.

diff --git a/gitk b/gitk
--- a/gitk
+++ b/gitk
@@ -1753,6 +1753,11 @@ proc selectline {l} {
 $ctext conf -state disabled
 set commentend [$ctext index "end - 1c"]
 
+linkcommits $ctext 0.0 $commentend
+$ctext tag configure Commit -underline yes -foreground blue
+$ctext tag bind Commit  { %W configure -cursor hand2 }
+$ctext tag bind Commit  { %W configure -cursor {} }
+$ctext tag bind Commit  { linkclick %W %x %y }
 $cflist delete 0 end
 $cflist insert end "Comments"
 if {$nparents($id) == 1} {
@@ -1762,6 +1767,30 @@ proc selectline {l} {
 }
 }
 
+proc linkclick {w x y} {
+set index [$w index @$x,$y]
+set tags [$w tag names $index]
+foreach c $tags {
+if {![string match {C_*} $c]} { continue; }
+global sha1string
+set sha1string [string range $c 2 end]
+gotocommit
+}
+}
+
+proc linkcommits {w start end} {
+while {1} {
+set pos [$w search -regexp {[[:<:]][0-9a-fA-F]{40}[[:>:]]} $start $end]
+if {$pos == {}} {break}
+
+set commit [$w get $pos "$pos+40c"]
+
+$w tag add Commit $pos "$pos+40c"
+$w tag add C_$commit $pos "$pos+40c"
+set start [$w index "$pos+40c"]
+}
+}
+
 proc selnextline {dir} {
 global selectedline
 if {![info exists selectedline]} return



pgppDwXRz0T1l.pgp
Description: PGP signature


Re: [RFC] git homepage

2005-08-05 Thread Martin Atukunda
On Friday 05 August 2005 04:27, Petr Baudis wrote:
> etc. And if you don't author any porcelain, send me updates anyway. :-)
>

gitk is a simple GTK GUI for browsing history of GIT repositories easily.
 ^^^


- Martin -

---
--- index.html  2005-08-05 21:38:20.605324272 +0300
+++ index.html.new  2005-08-05 21:38:44.804645416 +0300
@@ -148,7 +148,7 @@

 gitk
 http://ozlabs.org/~paulus/gitk/";>gitk is a simple
-GTK GUI for browsing history of GIT repositories easily.
+TK GUI for browsing history of GIT repositories easily.

 qgit
 http://sourceforge.net/projects/qgit";>qgit is a QT
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Terminology

2005-08-05 Thread Linus Torvalds


On Fri, 5 Aug 2005, Johannes Schindelin wrote:
> 
> Tutorial says "cache" aka "index". Though technically, a cache
> is the index file _plus_ the related objects in the object database.
> git-update-cache.txt even makes the difference between the "index"
> and the "directory cache".

I think we should globally rename it to "index".

The "directory cache" and later "cache" naming came from when I started
doing the work - before git was even git at all, and had no backing store
what-so-ever, I started out writing "cache.h" and "read-cache.c", and it
was really first a trial at doing a totally SCM-neutral directory cache
front-end.

You don't even see that in the git revision history, because that was 
before git was self-hosting - the project was partly started to also work 
as possibly just a fast front-end to something that wasn't as fast (ie 
think something like a front-end to make "monotone" work better).

So the "directory cache" and "cache" naming comes from that historical 
background: it was really started as a front-end cache, and in fact the 
".git" directory was called ".dircache" initially. You can see some of 
that in the very earliest git releases: by then I had already done the 
backing store, and the thing was already called "git", but the "dircache" 
naming still remains in places.

For example, here's my "backup" target in the initial checkin:

backup: clean
cd .. ; tar czvf dircache.tar.gz dir-cache

which shows that not only did I call the resulting tar file "dircache", 
the directory I was developing stuff in was called "dir-cache" as well ;)

The index obviously ended up doing a lot more, and especially with the
different stages it became much more than just a directory cache thing:  
it's integral to how git does the fast part of a merge. So we should call
it "index" and edit out the old "cache" and "director cache" naming
entirely.

>   - the directory which corresponds to the top of the hierarchy
> described in the index file; I've seen words like "working
> tree", "working directory", "work tree" used.
> 
> The tutorial initially says "working tree", but then "working
> directory". Usually, a directory does not include its
> subdirectories, though. git-apply-patch-script.txt, git-apply.txt,
> git-hash-object.txt, git-read-tree.txt
> use "work tree". git-checkout-cache.txt, git-commit-tree.txt,
> git-diff-cache.txt, git-ls-tree.txt, git-update-cache.txt contain
> "working directory". git-diff-files.txt talks about a "working tree".

I think we should use "working tree" throughout, since "working directory" 
is unix-speak for "pwd" and has a totally different meaning.

>   - When the stat information a cache entry records matches what
> is in the work tree, the entry is called "clean" or
> "up-to-date".  The opposite is "dirty" or "not up-to-date".
>
>   - An index file can be in "merged" or "unmerged" state.  The
> former is when it does not have anything but stage 0 entries,
> the latter otherwise.

I think the "unmerged" case should be mentioned in the "cache entry" 
thing, since it's really a per-entry state, exactly like "dirty/clean".

Then, explaining a "unmerged index" as being an index file with some 
entries being unmerged makes more sense. 

As it is, the above "explains" an index file as being unmerged by talking 
about "stage 0 entries", which in turn haven't been explained at all.

>   - A "tree object" can be recorded as a part of a "commit
> object".  The tree object is said to be "associated with" the
> commit object.
> 
> In diffcore.txt, "changeset" is used in place of "commit".

We really should use "commit" throughout. ex-BK users sometimes lip into
"changeset" (which in turn is probably because BK had these per-file
commits too - deltas), but there's no point in the distinction in git. A 
commit is a commit.

>   - The following objects are collectively called "tree-ish": a
> tree object, a commit object, a tag object that resolves to
> either a commit or a tree object, and can be given to
> commands that expect to work on a tree object.
> 
> We could call this category an "ent".

LOL. You are a total geek.

>   - The files under $GIT_DIR/refs record object names, and are
> called "refs".  What is under refs/heads/ are called "heads",
> refs/tags/ "tags".  Typically, they are either object names
> of commit objects or tag objects that resolve to commit
> objects, but a tag can point at any object.
> 
> The tutorial never calls them "refs", but instead "references".

It might be worth saying explicitly that a reference is nothing but the 
same thing as a "object name" aka "sha1". And make it very clear that it 
can point to any object type, although commits tend to be the most common 
thng you want to reference. That then leads naturally into a very specific 
_subcase_ of refs, namely a "head":

>   - A "head" is always an object name of a commit, and marks the
> latest comm

Re: [ANNOUNCE] Cogito-0.13

2005-08-05 Thread Chris Wright
* Jay Denebeim ([EMAIL PROTECTED]) wrote:
> Um, guys...
> 
> If you want to have a dependency on git-core >= 0.99.3 you need to 
> actually like, you know, put it on-line as well.  Just did a yum update, 
> fails with:
> 
> error: Failed dependencies:
> git-core >= 0.99.3 is needed by cogito-0.13-1
> 
> But on the git repository the git-core == 0.99.1
> 
> might wanna fix that.  (and man is google fast)

I've uploaded the rpms yesterday, but they haven't been staged for
mirroring yet.

thanks,
-chris
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Template files location

2005-08-05 Thread A Large Angry SCM

Junio C Hamano wrote:
...

If the template files are to become something that always have
to exist, /etc first and then falling back on /usr/share would
make a lot of sense.  But as Johannes Schindelin correctly
argued against the "Use the template mechanism to set up refs/
hierarchy as well." patch [*2*], I think git-init-db should work
when there is no template directory.  In other words, its
primary purpose is to help local project administrators ensure
newly created repositories have hooks and probably info/exclude
that they recommend to the project members.


So templates are project specific.


The reason to have a sample one shipped as part of the core
package is just to help newbies --- they would get a boilerplate
hooks/update that explains how they can set it up when they do
git-init-db even when they do not have their own customized set
of templates yet.  For this kind of use, I do not think one
default falling back to another is needed.


Shipping samples with the plumbing makes sense, especially when the 
documentation in is insufficient. But installing the samples as part of 
the default install process seems less than desirable. Or, alternately, 
install the samples in with the documentation as (non-executable) examples.


...

*1* This would probably break Linus, myself and others ---
everybody has to say "make prefix=$HOME", so I do not think I am
actually going to do it any time soon, if ever.

Having prefix=/usr/local as default only helps people who are
installing system-wide from the source, and nobody else.  People
who are writing spec.in and/or debian/rules need to override it
to prefix=/usr anyway, and it forces people who are installing
to their home to say prefix=$HOME/.  I suspect it is an inertia
from the good old days when nobody used binary distributions.


Rather than changing the default install location in such a way as to 
make half the user unhappy, make everybody (un)happy by removing the 
default and forcing it to be specified when make is executed.

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


Re: Template files location

2005-08-05 Thread Junio C Hamano
Petr Baudis <[EMAIL PROTECTED]> writes:

> Any reason why that's not the default destination then?

Inertia, installing things under $HOME, is why it is not the
default.  It may be that the project is mature enough that it is
time to move away from default installation in HOME, IOW to
change the Makefile to say prefix=/usr/local (or prefix=/usr)
to match practices of other projects [*1*].

> Or you can try /etc/git-core/ and fall back to /usr/share/git-core :-)

If the template files are to become something that always have
to exist, /etc first and then falling back on /usr/share would
make a lot of sense.  But as Johannes Schindelin correctly
argued against the "Use the template mechanism to set up refs/
hierarchy as well." patch [*2*], I think git-init-db should work
when there is no template directory.  In other words, its
primary purpose is to help local project administrators ensure
newly created repositories have hooks and probably info/exclude
that they recommend to the project members.

The reason to have a sample one shipped as part of the core
package is just to help newbies --- they would get a boilerplate
hooks/update that explains how they can set it up when they do
git-init-db even when they do not have their own customized set
of templates yet.  For this kind of use, I do not think one
default falling back to another is needed.

Come to think of it, GIT_TEMPLATE_DIRECTORY environment variable
does not make _ANY_ sense; I am an idiot.  It is used only by
git-init-db and the reason to have it is to override the
default.  It should become the command line parameter of it.
I'll fix up this breakage soonish.


[Footnote]

*1* This would probably break Linus, myself and others ---
everybody has to say "make prefix=$HOME", so I do not think I am
actually going to do it any time soon, if ever.

Having prefix=/usr/local as default only helps people who are
installing system-wide from the source, and nobody else.  People
who are writing spec.in and/or debian/rules need to override it
to prefix=/usr anyway, and it forces people who are installing
to their home to say prefix=$HOME/.  I suspect it is an inertia
from the good old days when nobody used binary distributions.

*2* And I am sure many others shared the same objection but did
not even bother to say anything because what Johannes said made
a lot of sense and what the patch did was obviously wrong.

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


Re: [ANNOUNCE] Cogito-0.13

2005-08-05 Thread Jay Denebeim

Um, guys...

If you want to have a dependency on git-core >= 0.99.3 you need to 
actually like, you know, put it on-line as well.  Just did a yum update, 
fails with:


error: Failed dependencies:
git-core >= 0.99.3 is needed by cogito-0.13-1

But on the git repository the git-core == 0.99.1

might wanna fix that.  (and man is google fast)

Jay

--
* Jay Denebeim  Moderator   rec.arts.sf.tv.babylon5.moderated *
* newsgroup submission address: [EMAIL PROTECTED]*
* moderator contact address:[EMAIL PROTECTED]*
* personal contact address: [EMAIL PROTECTED] *
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: bisect gives strange answer

2005-08-05 Thread Sanjoy Mahajan
> If you see any sort of evidence that this would hold true I really like
> to know.

I haven't found any evidence.  When I rebuilt the kernels from scratch
(exporting them into an empty directory using cg-export), I got
reliable data and bisected down to a patch that probably was a problem.

I will redo those tests but rebuilding in place after each bisection
(with -f added to all the git checkout uses in git-bisect-script) and
see whether I get the same results.  If I don't, it could be due to
git or git-bisect (but not so likely with the -f switch) or to the
build system.  Will keep you and Junio posted.

-Sanjoy
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] Assorted documentation patches

2005-08-05 Thread Johannes Schindelin

Hi,

while sifting through the documentation to find different namings for the 
same concepts, I saw a few things here and there, which I fixed. Since the 
sifting was quite numbing, there might be some wrong "fixes".


Sorry, patch is attached, because I still can't convince my pine (version 
4.63) to send single space lines :-(


Ciao,
Dscho
diff --git a/Documentation/diff-format.txt b/Documentation/diff-format.txt
--- a/Documentation/diff-format.txt
+++ b/Documentation/diff-format.txt
@@ -62,7 +62,7 @@ customization also applies to "git-diff-
 1. When the environment variable 'GIT_EXTERNAL_DIFF' is not set,
these commands internally invoke "diff" like this:
 
-  diff -L a/ -L a/ -pu  
+  diff -L a/ -L b/ -pu  
 +
 For added files, `/dev/null` is used for .  For removed
 files, `/dev/null` is used for 
@@ -101,7 +101,7 @@ For a path that is unmerged, 'GIT_EXTERN
 parameter, .
 
 
-Git specific extention to diff format
+Git specific extension to diff format
 -
 
 What -p option produces is slightly different from the
diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
--- a/Documentation/diff-options.txt
+++ b/Documentation/diff-options.txt
@@ -5,9 +5,9 @@
Synonym for "-p".
 
 -r::
-   Look recursivelly in subdirectories; this flag does not
+   Look recursively in subdirectories; this flag does not
mean anything to commands other than "git-diff-tree";
-   other commands always looks at all the subdirectories.
+   other diff commands always look at all the subdirectories.
 
 -z::
\0 line termination on output
diff --git a/Documentation/git-diff-cache.txt b/Documentation/git-diff-cache.txt
--- a/Documentation/git-diff-cache.txt
+++ b/Documentation/git-diff-cache.txt
@@ -50,13 +50,13 @@ Cached Mode
 ---
 If '--cached' is specified, it allows you to ask:
 
-   show me the differences between HEAD and the current index
+   show me the differences between HEAD and the current cache
contents (the ones I'd write with a "git-write-tree")
 
-For example, let's say that you have worked on your index file, and are
-ready to commit. You want to see eactly *what* you are going to commit is
-without having to write a new tree object and compare it that way, and to
-do that, you just do
+For example, let's say that you have worked on your working directory, updated
+some files in the cache and are ready to commit. You want to see eactly
+*what* you are going to commit is without having to write a new tree
+object and compare it that way, and to do that, you just do
 
git-diff-cache --cached $(cat .git/HEAD)
 
diff --git a/Documentation/git-diff-tree.txt b/Documentation/git-diff-tree.txt
--- a/Documentation/git-diff-tree.txt
+++ b/Documentation/git-diff-tree.txt
@@ -86,7 +86,7 @@ Or if you are searching for what changed
 and it will ignore all differences to other files.
 
 The pattern is always the prefix, and is matched exactly.  There are no
-wildcards.  Even stricter, it has to match complete path comonent.
+wildcards.  Even stricter, it has to match a complete path component.
 I.e. "foo" does not pick up `foobar.h`.  "foo" does match `foo/bar.h`
 so it can be used to name subdirectories.
 
diff --git a/Documentation/git-fsck-cache.txt b/Documentation/git-fsck-cache.txt
--- a/Documentation/git-fsck-cache.txt
+++ b/Documentation/git-fsck-cache.txt
@@ -39,17 +39,17 @@ OPTIONS
 
 --standalone::
Limit checks to the contents of GIT_OBJECT_DIRECTORY
-   (.git/objects), making sure that it is consistent and
+   ($GIT_DIR/objects), making sure that it is consistent and
complete without referring to objects found in alternate
object pools listed in GIT_ALTERNATE_OBJECT_DIRECTORIES,
-   nor packed GIT archives found in .git/objects/pack;
+   nor packed GIT archives found in $GIT_DIR/objects/pack;
cannot be used with --full.
 
 --full::
Check not just objects in GIT_OBJECT_DIRECTORY
-   (.git/objects), but also the ones found in alternate
+   ($GIT_DIR/objects), but also the ones found in alternate
object pools listed in GIT_ALTERNATE_OBJECT_DIRECTORIES,
-   and in packed GIT archives found in .git/objects/pack
+   and in packed GIT archives found in $GIT_DIR/objects/pack
and corresponding pack subdirectories in alternate
object pools; cannot be used with --standalone.
 
@@ -69,11 +69,7 @@ that aren't readable from any of the spe
 
 So for example
 
-   git-fsck-cache --unreachable $(cat .git/HEAD)
-
-or, for Cogito users:
-
-   git-fsck-cache --unreachable $(cat .git/refs/heads/*)
+   git-fsck-cache --unreachable $(cat .git/HEAD .git/refs/heads/*)
 
 will do quite a _lot_ of verification on the tree. There are a few
 extra validity tests to be added (make sure that tree objects are
@@ -122,18 +118,18 @@ sha1 mismatch ::
The database has an object who's sha1 doesn't match

Re: git-cvs-import-script problems

2005-08-05 Thread David Kågedal
David Kågedal <[EMAIL PROTECTED]> writes:

> I just tried importing a large CVS repository to git, using "git
> cvsimport".  It managed to import a lot of files and revisions, but
> half-way through, it stopped with this message:
>
>   Unknown: F
>
> As far as I can till, this "F" probably came from the CVS server
> process.  Could it be that my CVS is too new or too old?

Upgrading to CVS 1.12.1 seems to have helped.

-- 
David Kågedal

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


Re: Terminology

2005-08-05 Thread Johannes Schindelin

Hi,

I am finally finished with my preliminary survey: I took what you sent as 
a strawman, and inserted what I found (I tried to say only something about 
ambiguous naming):


 - The unit of storage in GIT is called "object"; no other word
   is used and the word "object" is used only for this purpose
   so this one is OK.

 - A 20-byte SHA1 to uniquely identify "objects"; README and
   early Linus messages call this "object name" so does
   tutorial.  Many places say "object SHA1" or just "SHA1".

"Object" is short for "immutable object". git-cat-file.txt says
"repository object".

 - An "object database" stores a set of "objects", and an
   individial object can be retrieved by giving it its object
   name.

Tutorial calls it an "object store". git-fsck-cache.txt names it
"database" at first, but then also uses "object pool".

 - Storing a regular file or a symlink in the object database
   results in a "blob object" created.  You cannot directly
   store filesystem directory, but a collection of blob objects
   and other tree objects can be recorded as a "tree object"
   which corresponds to this notion.

 - $GIT_INDEX_FILE is "index file", which is a collection of
   "cache entries".  The former is sometimes called "cache
   file", the latter just "cache".

Tutorial says "cache" aka "index". Though technically, a cache
is the index file _plus_ the related objects in the object database.
git-update-cache.txt even makes the difference between the "index"
and the "directory cache".

 - the directory which corresponds to the top of the hierarchy
   described in the index file; I've seen words like "working
   tree", "working directory", "work tree" used.

The tutorial initially says "working tree", but then "working
directory". Usually, a directory does not include its
subdirectories, though. git-apply-patch-script.txt, git-apply.txt,
git-hash-object.txt, git-read-tree.txt
use "work tree". git-checkout-cache.txt, git-commit-tree.txt,
git-diff-cache.txt, git-ls-tree.txt, git-update-cache.txt contain
"working directory". git-diff-files.txt talks about a "working tree".

 - When the stat information a cache entry records matches what
   is in the work tree, the entry is called "clean" or
   "up-to-date".  The opposite is "dirty" or "not up-to-date".

 - An index file can be in "merged" or "unmerged" state.  The
   former is when it does not have anything but stage 0 entries,
   the latter otherwise.

That seems to be unambiguous (sometimes it's called "index",
sometimes "index file"; I don't think that matters).

 - An merged index file can be written as a "tree object", which
   is technically a set of interconnected tree objects but we
   equate it with the toplevel tree object with this set.

 - A "tree object" can be recorded as a part of a "commit
   object".  The tree object is said to be "associated with" the
   commit object.

In diffcore.txt, "changeset" is used in place of "commit".

 - A "tag object" can be recorded as a pointer to another object
   of any type. The act of following the pointer a tag object
   holds (this can go recursively) until we get to a non-tag
   object is sometimes called "resolving the tag".

 - The following objects are collectively called "tree-ish": a
   tree object, a commit object, a tag object that resolves to
   either a commit or a tree object, and can be given to
   commands that expect to work on a tree object.

We could call this category an "ent".

 - The files under $GIT_DIR/refs record object names, and are
   called "refs".  What is under refs/heads/ are called "heads",
   refs/tags/ "tags".  Typically, they are either object names
   of commit objects or tag objects that resolve to commit
   objects, but a tag can point at any object.

The tutorial never calls them "refs", but instead "references".

 - A "head" is always an object name of a commit, and marks the
   latest commit in one line of development.  A line of
   development is often called a "branch".  We sometimes use the
   word "branch head" to stress the fact that we are talking
   about a single commit that is the latest one in a "branch".

In the tutorial, the latter is used in reverse: it talks about a
"HEAD development branch" and a "HEAD branch".

I find it a little bit troublesome that $GIT_DIR/branches does not
really refer to a branch, but rather to a (possibly remote) repository.

 - Combining the states from more than one lines of developments
   is called "merging" and typically done between two branch
   heads.  This is called "resolving" in the tutorial and there
   is git-resolve-script command for it.

 - A set of "refs" with the set of objects reachable from them
   constitute a "repository".  Although currently there is no
   provision for a repository to say that its objects are stored
   in this and that object database, multiple repositories can
   share the same object database, and there is not a conceptual
   limit that a repository must retrive its objects from a
   sin

gitk "hyperlinks" (was Re: Display of merges in gitk)

2005-08-05 Thread Linus Torvalds

[ Also Kay Sievers, because the clickability thing sounds like a 
  potentially good thing for webgit too.. ]

For 2.6.13 we've been reverting some stuff lately, to make sure we get a 
stable release. That's fine, and when I revert something I try to mention 
the commit ID of the thing I revert in the message. Apparently others do 
too, as indicated by a patch I just got from Petr Vandovec. So we've got 
for example:

889371f61fd5bb914d0331268f12432590cf7e85:
Author: Linus Torvalds <[EMAIL PROTECTED]>  2005-07-30 13:41:56
Committer: Linus Torvalds <[EMAIL PROTECTED]>  2005-07-30 13:41:56

Revert "yenta free_irq on suspend"

ACPI is wrong.  Devices should not release their IRQ's on suspend and
re-aquire them on resume.  ACPI should just re-init the IRQ controller
instead of breaking most drivers very subtly.

Breakage reported by Hugh Dickins <[EMAIL PROTECTED]>

Undo: d8c4b4195c7d664baf296818bf756775149232d3

Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

and

403fe5ae57c831968c3dbbaba291ae825a1c5aaa:
Author: Petr Vandrovec <[EMAIL PROTECTED]>  2005-08-05 06:50:07
Committer: Linus Torvalds <[EMAIL PROTECTED]>  2005-08-05 06:57:44

[PATCH] rtc: msleep() cannot be used from interrupt

Since the beginning of July my Opteron box was randomly crashing and
being rebooted by hardware watchdog.  Today it finally did it in front
of me, and this patch will hopefully fix it.

The problem is that at the end of June (the 28th, to be exact: commit
47f176fdaf8924bc83fddcf9658f2fd3ef60d573, "[PATCH] Using msleep()
instead of HZ") rtc_get_rtc_time ...

and when I use gitk, it would be just too damn cool for words if I could 
easily follow the SHA1's mentioned in the commit message.

I can just cut-and-paste the SHA1, and I've verified that it works fine. 
However, as you'v enoticed, I'm of the whiny kind, and I thought it could 
be easier. So I'm whining again.

Mommy, mommy, can you make my life easier

So I noticed that I really would like two things:

 - "clickable" SHA1's in commit messages would be really really cool if 
   something like that is even possible with tcl/tk.

   Now, if you can highlight them when showing the message, that would be 
   extra cool, but even without any highlighing, the thing actually 
   _almost_ works fine already: you can double-click the SHA1, and it will 
   select it. You then have to move the mouse to the "goto" window, and 
   paste in the SHA1 there. And this is where it would be good if this 
   sequence could be simplified a bit.

   Even if it's something as simple as accepting the SHA1 paste into the 
   same window (not having to go to the "goto" window: just double-click 
   on the SHA1, and then right-click to "paste it back").

 - I'd like to have a "back button". Not just for the above kind of thing, 
   but in general too: when searching for something, it would just be very 
   nice if gitk just kept a list of the  last commits that have 
   been selected, and there was a web-browser-like button that went 
   back/forward in history.

   But especially when looking at a revert, I just want to first go to the 
   thing we revert, see what's going on there (get the "historical 
   perspective" - commit log for why the original was done etc), and then 
   I'd want to go back (and possibly forth and back again ;). And while 
   the revert mentioned the thing it reverted (so I could cut-and-paste), 
   the thing it reverted obviously does _not_ mention the thing that 
   reverted it, so now I have to manually just scroll back.

   This same thing happens for a failed search (I search for xyz, and it 
   actually finds it, and I realize that that was the wrong search, but
   now I'm two months back..)

Mommy, mommy, plase

Linus
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Display of merges in gitk

2005-08-05 Thread Linus Torvalds


On Fri, 29 Jul 2005, Paul Mackerras wrote:
>
> I have reworked the way gitk displays merges.

Ok, goodie. It works fine in my environment, with most merges showing up 
as not interesting. But a merge like

3e0777b8fa96f7073ed5d13d3bc1d573b766bef9

shows an example of where there was actually both real content merges, and 
some real clashes.

However, most of the content merges were trivial, and they often hide the 
real clashes. For example, if you click on that merge, a _lot_ of it looks 
like it might be clashes, even though most of it was auto-merged. This is 
not really a problem, but I get the feeling that it could be improved 
somehow - maybe a button that hides the parts that don't have clashes? 


> In the usual case of two parents, lines from the first parent are in red
> and lines from the second parent are in blue.  Lines in the result that
> don't correspond to either parent are in bold black.

To get the alternate output, maybe something like:
 - run "merge" on the original/parent1/parent2 (the same way the
   git-merge-one-file-script does)
 - anything that merged fine is in black (regardless of which parent it 
   came from), and then mark the merge rejects are in red/blue depending 
   on parent?

I don't know how doable that would be.

Linus
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


git-cvs-import-script problems

2005-08-05 Thread David Kågedal
I just tried importing a large CVS repository to git, using "git
cvsimport".  It managed to import a lot of files and revisions, but
half-way through, it stopped with this message:

  Unknown: F

As far as I can till, this "F" probably came from the CVS server
process.  Could it be that my CVS is too new or too old?

I'm using git b03e2d2091153d239063cfc086a840d74a9eadde,  cvs 1.11.20,
cvsps 2.1, and the CVS repository is a local directory.

Also, when the process stops, I have .git/HEAD pointing to
refs/heads/master (which doesn't exist).  I thought it would be
pointing to refs/heads/origin.

-- 
David Kågedal

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


Template files location

2005-08-05 Thread Petr Baudis
Dear diary, on Fri, Aug 05, 2005 at 06:37:11AM CEST, I got a letter
where Junio C Hamano <[EMAIL PROTECTED]> told me that...
> We install files in $(HOME)/etc/git-core/templates/ directory.
> 
> In the standard binary distribution scheme, it should probably
> go to either /usr/share or /etc; the former if the distribution
> prefers static boilerplate files in /usr/share, latter if we
> consider them site-specific conffiles.  I just discussed this
> privately with a Debian person on the list today, and we are in
> favor of installing it under /usr/share/git-core/templates,
> because we do not expect the contents of the standard templates
> directory will not be a per-site customization [*1*].
> 
> In any case, this means that the make drivers like spec.in and
> debian/rules would need to override some make variables when
> they invoke the main Makefile.

Any reason why that's not the default destination then?

Or you can try /etc/git-core/ and fall back to /usr/share/git-core :-)

-- 
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
If you want the holes in your knowledge showing up try teaching
someone.  -- Alan Cox
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Tree tags again..

2005-08-05 Thread Junio C Hamano
Sorry about the breakage.  I pushed out a fix.

Since you always give me hard time with this "tree-tag", I
decided to trump it with an even weirder tag myself.  We will
see what else would break shortly ;-).

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


Re: [RFC] git homepage

2005-08-05 Thread Kay Sievers
On Fri, Aug 05, 2005 at 04:12:14AM +0200, Petr Baudis wrote:
> Dear diary, on Fri, Aug 05, 2005 at 04:00:03AM CEST, I got a letter
> where Junio C Hamano <[EMAIL PROTECTED]> told me that...
> > Petr Baudis <[EMAIL PROTECTED]> writes:
> > 
> > >   http://git.or.cz/
> > 
> > Wonderful.
> > 
> > Once the page contents stabilizes, it would be a good idea to
> > get it added in the page top links of http://www.kernel.org/git
> > page.  Sorry, I do not know who is in charge of configuring the
> > gitweb there.
> 
> I tend to harass Kay Sievers, with measurable effects. :-)

You are welcome to do so. :)

> > BTW, it may be technically correct, but the combination of
> > "rsync" and "www" on the 3rd line of http://www.kernel.org/git
> > caught my attention there ;-).
> > 
> >   cg-clone rsync://www.kernel.org/pub/scm/ + project path
> 
> Actually, HTTP should be working again now; but it's rather fresh yet so
> we should keep it rsync anyway for a while yet for the users of older
> GIT/Cogito versions.

Changed both to rsync now. Let me know, when we want to switch to http
again.

Best,
Kay
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html