GIT 0.99.4 (preview)

2005-08-07 Thread Junio C Hamano
I said:

 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.

Ok, I am almost ready to push 0.99.4 out.  Here is what I have
in the public repository.

  - The branches master  pu are as usual.  Modulo bugs, I
consider send-pack enhancement finished.

  - There is an rc branch whose Makefile already says 0.99.4.
I've been working on Debian and RPM packaging issues today,
with help from Chris Wright and H Peter Anvin, in this
branch.

The plan is to stabilize the binary packaging issues in the rc
branch, and ordinary feature updates and bugfixes in master or
pu branch as usual.  When things are ready, rc and master
will be merged, 0.99.4 gets created and tagged, and master and
pu will continue from there.

I would appreciate if folks familiar with binary packaging,
especially RPM, give final sanity checks on what is currently in
rc branch.

-
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-format-patch-script bug?

2005-08-07 Thread Eric W. Biederman

I haven't had a chance to investigate this much
yet but I have ran into a peculiar problem.

I was trying to help someone track down a bug that
occurred between linux-2.6.12 and linux-2.6.13-rc1.
Since it was very much an unknown where the problem
was introduced I decided to run git format-patch
so I could see what all of the differences were.
Then to be certain the patch series worked I started
applying them in order.  

I didn't get very far when I had a patch conflict.

Looking deeper git-diff-tree is always making the diffs
against the parent instead of against the next commit
in the series.  Which is largely sane.  However it does
not warn or fail when the parents and the next commit are different,
which seems nonintuitive.

Eric
-
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: qgit-0.81

2005-08-07 Thread Marco Costalba
Linus Torvalds wrote:

Ok, this is nicer than gitk, with the parents showing up in the commit
message and thus easy to go to. You might add children too: it's not
something git itself knows about intrisically, but since you've already 
built the graph, at least you see what children are part of that graph..


I don't know if this is what you mean, but if you right click on a free 
lane (i.e. not a bullet but a vertical line) on the graph you should see a
pop-up with selectable childs and parent.

 - Any chance of having a git archive of qgit? I realize that sourceforge 
   doesn't have git archives, but (a) maybe you can ask and (b) maybe 
   there are alternate places you could put it. It's just sad having to 
   download tar-balls.


I will try to proceed from (a) to, eventually, (b).


 - The qgit graph is not as pretty as the gitk one. Any chance of making 
   the bullets a bit smaller, and having an option to not do the
   jump-over-bumps?


Ok, I will try to use straight horizontal lines instead of jump-over-bumps. If
this seems not enough clear I will add an option to switch visualization.

 - the file annotation window is nice, but it _really_ shouldn't do line
   wrapping. If you make the window narrower, you'll see it wrap and look 
   horrible.. Are all text windows always wrapped in QT?


No, just a setting. Not a problem to set No wrap behaviour. I will set this
also in diff viewer window.

 - You edit the commit comments heavily, and have no options to unedit. 
   For example, I need the emails in the sign-offs if I ever cut-and-paste 
   to an email client when I sent a hey, this commit broke so-and-so..


You discover a real bug ;-). I never intended to modify commit comments in any 
way.


 - the format a patch to be sent as email thing says at least two 
   revisions needed when you only have one. Why? One of my more common 
   cases is that I send one commit as a patch, and now I do

   git-diff-tree -p --pretty [commit-id]  ~/diff

   and then just send that. A single commit _does_ describe a valid patch, 
   after all.


The logic here is to specify a range. As example if you have following commits

  A
  B
  C
  D
  E
  F

and you select B and E then 3 patches will be created: 
 
 patch_1(diff between D-E)
 patch_2(diff between C-D)
 patch_3(diff between B-C) 

So you need at least 2 selected revs. Put in other words, the base is always 
explicit.

 
Marco


__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
-
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 SHA link hovers

2005-08-07 Thread Paul Mackerras
Linus Torvalds writes:

 This makes the cursor change when you hover over a SHA1 link with the new 
 hypertext gitk commit ID linking feature.

I committed something based on this but with extra stuff to make the
cursor changes work with the change from the normal cursor to the
watch cursor and back.

Paul.
-
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

2005-08-07 Thread Paul Mackerras
Junio C Hamano writes:

 I did, and will push it out shortly, but I think you need this
 patch.  To make later merges from you easier, I will not put
 this in my master branch.

I have committed this plus the hand cursor for the links plus a small
change to make gitk display commit messages correctly according to the
current locale.

Paul.
-
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


qgit-0.82 (was Re: qgit-0.81)

2005-08-07 Thread Marco Costalba
Marco Costalba wrote:

Linus Torvalds wrote:


- Any chance of having a git archive of qgit? I realize that sourceforge 
  doesn't have git archives, but (a) maybe you can ask and (b) maybe 
  there are alternate places you could put it. It's just sad having to 
  download tar-balls.


I will try to proceed from (a) to, eventually, (b).



Apart from using a public git archive, (I already use my private one ;-)) 
the other points should be fixed now by a fresh qgit-0.82

Download link (still tarball for now) is:
http://prdownloads.sourceforge.net/qgit/qgit-0.82.tar.bz2?download


Changelog:

- replaced jump-over-bumps with horizontal lines

- set graph bullets a bit smaller  

- no more word wrapping in diff and file viewers

- fixed display of e-mail addresses in commit messages



Marco


__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
-
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: git-format-patch-script bug?

2005-08-07 Thread Junio C Hamano
[EMAIL PROTECTED] (Eric W. Biederman) writes:

 I was trying to help someone track down a bug that
 occurred between linux-2.6.12 and linux-2.6.13-rc1.
 Since it was very much an unknown where the problem
 was introduced I decided to run git format-patch
 so I could see what all of the differences were.
 Then to be certain the patch series worked I started
 applying them in order.  

Sorry, I offhand do not have a good re-design of what
format-patch should do for this purpose; the current design does
not try to deal with anything but a linear sequence of commits,
primarily because the command was done for preparing individual
developer's patch submission.

I find your trying to find where the problem was introduced by
reading every single change very laudable.  However, for the
purpose of this one was good but somewhere before this one the
things got broken, where is it?, I suspect that bisect would be
a better fit.

The way to use bisect is very simple.  First you make sure you
do not have unrecorded changes in your working tree, because
bisect procedure would check out sequences of commits for you to
test there.  Then, you give it two known to be good and known
to be bad commits.  The order you give them does not matter,
but good one _must_ be ancestor of bad one (the code
currently does not check this):

$ git bisect start
$ git bisect good v2.6.12
$ git bisect bad  v2.6.13-rc1
Bisecting: 1035 revisions left to test after this

As soon as ou give these two pair, bisect starts thinking, and
checks out one revision that is roughly in the halfway between
these two good and bad commits.  You can, if you feel like, see
which one is the first one it wants you to test, like this:

$ git log --max-count=1 --pretty=short bisect
commit 15d20bfd606c4b4454aeaa05fc86f77994e48c92
Author: Domen Puncer [EMAIL PROTECTED]

[PATCH] ptrace_h8300: condition bugfix

At this point, your working tree has this commit checked out.
Compile and test to see if this one is good or bad.  If it is
good, then you say good:

$ git bisect good
Bisecting: 517 revisions left to test after this

Bisect eliminated about half commits from the original 1000+
suspects to be innocent, and checked out which one it wants you
to check next.  Compile and test to see if this one is good or
bad.  If it turns out to be bad, then you say bad:

$ git bisect bad
Bisecting: 266 revisions left to test after this

You go on eliminating about half every time you run one test,
and eventually it would find one commit that you may want to
examine more deeply by code inspection.

-
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: git-format-patch-script bug?

2005-08-07 Thread Eric W. Biederman
Junio C Hamano [EMAIL PROTECTED] writes:

 [EMAIL PROTECTED] (Eric W. Biederman) writes:

 I was trying to help someone track down a bug that
 occurred between linux-2.6.12 and linux-2.6.13-rc1.
 Since it was very much an unknown where the problem
 was introduced I decided to run git format-patch
 so I could see what all of the differences were.
 Then to be certain the patch series worked I started
 applying them in order.  

 Sorry, I offhand do not have a good re-design of what
 format-patch should do for this purpose; the current design does
 not try to deal with anything but a linear sequence of commits,
 primarily because the command was done for preparing individual
 developer's patch submission.

What format-patch does is currently is fine.  If format-patch would
simply notice the case and fail gracefully that would be sufficient to
avoid giving false impressions.

Depending on the quality of the list from git-rev-list --merge-order
I should even be able to achieve what I was attempting, by
running git-diff-tree with an ordered list of revisions and 
two parents on the tree.

Essentially I was attempting an export to quilt operation, which
implies a linearization of the changes.  As I recall a linearization
of the changes is what BK export to CVS was built on.  So that
case may be worth returning to as there are a lot of interesting
cases out there for it.

The other interest tid bit about my experiment was that
git-format-patch-script on 2000 diffs was sluggish, certainly slower
that the time to perform the write operations.  Why it was slow
I don't know but it may be worth looking into.

 I find your trying to find where the problem was introduced by
 reading every single change very laudable.  However, for the
 purpose of this one was good but somewhere before this one the
 things got broken, where is it?, I suspect that bisect would be
 a better fit.

If you can teach the user how to use bisect, and git.  

If we could get gitweb to perform the bisect it would be helpful,
or possibly when git settles down and everyone can be counted on
to have git on their machine already, bisect would be a help.

Had I been thinking a little more clearly I would have suggested
walking through the daily git snapshots as those are at least
fairly big steps.

For the moment I think the unexpected behavior I found in git 
is more interesting then the problem I was actually trying to solve.

Eric
-
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: git-format-patch-script bug?

2005-08-07 Thread Junio C Hamano
[EMAIL PROTECTED] (Eric W. Biederman) writes:

 What format-patch does is currently is fine.  If format-patch would
 simply notice the case and fail gracefully that would be sufficient to
 avoid giving false impressions.

Hmph.  Since it uses merge-order, We should be able to change it
use the tagged output format of rev-list to detect the revision
list discontinuity and skip generating diff for such.  Or as you
suggest just run diff-tree with the first parent.

I've been wanting to update format-patch to take the commit
begin-end pair in the rev-parse format, that is:

$ git format-patch his..mine

I am reluctant to actually do this right away, because this is
an incompatible change from the current format:

$ git format-patch his mine

The same goes for rebase (and therefore cherry).  I could use an
ugly heuristics for backward compatibility like if invoked with
exactly two parameters, and there is no prefix ^ nor .. in these
two, then use the old interpretation, otherwise give them to
rev-parse, but I think this is ugly.

So my question to the list is: do people mind this change?



-
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: use of temporary refs in resolve

2005-08-07 Thread Linus Torvalds


On Sun, 7 Aug 2005, Junio C Hamano wrote:
 
 Also ORIG_HEAD is probably redundant.  After a successful
 automerge, the same information can be had by HEAD^1

Absolutely not.

You forgot about one of the most common merge cases: fast-forward.

In fact, ORIG_HEAD is _the_ most common head I use explicitly. Almost all 
operations take HEAD as default, but doing a

gitk ORIG_HEAD..

is extremely useful after a pull.

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: use of temporary refs in resolve

2005-08-07 Thread Junio C Hamano
Linus Torvalds [EMAIL PROTECTED] writes:

 In fact, ORIG_HEAD is _the_ most common head I use explicitly.

A.  You are right.

How about LAST_MERGE?

-
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 parent information in commit window

2005-08-07 Thread Junio C Hamano
Linus Torvalds [EMAIL PROTECTED] writes:

 [ Btw, the patch was generated against a tree that had Paul's hovering 
   patches merged. Junio, I don't think you've merged that yet, so this may 
   apply better to Paul's tree than to standard git. But I _think_ it will 
   apply cleanly to either one ]

Thanks.  Since Paul seems to be quite responsive, I'd prefer to
keep pulling from his tree.  I just pulled the hovering patches
from his tree and was about to push things out.

-
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


backward compatible changes to format-patch, rebase, cherry and fetch

2005-08-07 Thread Junio C Hamano
Marco Costalba [EMAIL PROTECTED] writes:

 A suggestion I would like to present is if can be useful a
 kind of scheduling/list of planned compatibility break features so
  that developers can know in advance when and what will break
  their stuff and users can know when they will need to upgrade.

Yes, that is a valid concern.  Fortunately this is the only
backward incompatible thing I currently see on the horizon.

Here are the list of things I am currently thinking about
updating.

 - The format-patch, rebase and cherry parameters you already
   know about.  I do not think the ugly two parameter
   compromise is too much baggage to keep around, so my original
   plan was not to break the backward compatibility.

 - Fetch and pull.  Currently git fetch (and git pull) takes the
   following forms:

$ git fetch remote
$ git fetch remote head
$ git fetch remote tag tag

   I am planning to update it to take:

$ git fetch remote refspec...

   but in a backward compatible way.

   refspec can take the following forms:

- A refspec of form src:dst is to fetch the objects
  needed for the remote ref that matches src, and if dst
  is not empty, store it to the local that matches dst.
  The same rule as git push applies for dst.  src can
  be either a ref pattern or the SHA1 object name.  If src
  is not an SHA1 object name, and it does not match exactly
  one remote ref, it is an error.

- tag followed by next is just an old way of saying
  refs/tags/next:refs/tags/next; this mimics the
  current behaviour of the third form above and means fetch
  that tag and store it under the same name.

- A single token refspec without colon is a shorthand for
  refspec:  That is, fetch that ref but do not store
  anywhere.

- when there is no refspec specified

  - if remote is the name of a file under
$GIT_DIR/branches/ (i.e. a shorthand without trailing
path), then it is the same as giving a single refspec
remote-name:refs/heads/remote on the command line,
where remote-name is the remote branch name (defaults
to HEAD, but can be overridden by .git/branches/remote
file having the URL fragment notation).  That is, fetch
that branch head and store it in refs/heads/remote.

  - otherwise, it is the same as giving a single refspec
that is HEAD:.

The SHA1 object names of fetched refs are stored in FETCH_HEAD
[*1*], one name per line.  There will be an empty line for the
ref that was not available on the remote end.

  I have pull enhancements that takes more than one remote refs
  in mind, but that will not be in the immediate future.  What
  will happen when the above fetch enhancement happens is that
  pull will accept the same set of parameters as the updated
  fetch does, runs the fetch, but refuses to run resolve when
  more than one remote ref is involved.  When resolve is updated
  to do an octopus (or a king ghidorah), this restriction can be
  lifted without breaking backward compatibility.

[Footnote]
*1* git-fetch-pack most likely will just output SHA1 to its
standard output like Linus suggested earlier.

-
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 parent information in commit window

2005-08-07 Thread A Large Angry SCM

Paul Mackerras wrote:
...

I have been thinking about adding dialog windows to allow the user to
select which repository and which range of commits they want to look at.
Do you think that would be useful for you?


Yes!
-
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 parent information in commit window

2005-08-07 Thread Junio C Hamano
Paul Mackerras [EMAIL PROTECTED] writes:

 Linus Torvalds writes:

 This adds a useful Parent: line to the git commit information window.

 Cool!  Applied and pushed out.

Thanks.  Merged and pushed out.

 I have been thinking about adding dialog windows to allow the user to
 select which repository and which range of commits they want to look at.
 Do you think that would be useful for you?

Which repository to look at would be like restarting if you
need to lose history information, in which case it would not be
so useful at least for me (an extra command line option to limit
the range with specifying GIT_DIR environment variable would
work equally well).  If you can do that without losing history
when the new repository to look at is the same as the old one,
or similar to the old one, then that would be useful.

After starting up, without losing history information, if I can
tell it to re-read the refs, because I made some changes to the
repository while gitk was not looking, that would be very
useful.  But I hope your switching repository logic would do
exactly that when I tell it to switch to the same repository.

If there was an option, either runtime configurable or command
line, to cause gitk slurp not just refs/heads and refs/tags but
everything under refs/* recursively, that would help visualizing
the bisect status.  bisect creates bunch of commit object names
in refs/bisect.

If you can pop-up a transient window that shows the tag object
comments when I hover over a tag icon for 2 seconds, and remove
that transient window when stepping outside, that would be a
useful addition.  I do not currently see any way to inspect the
tag itself, not the commit that is pointed at by the tag.

-
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 parent information in commit window

2005-08-07 Thread A Large Angry SCM

Linus Torvalds wrote:

This adds a useful Parent: line to the git commit information window.

It looks something like this (from the infamous octopus merge):

Author: Junio C Hamano [EMAIL PROTECTED]  2005-05-05 16:16:54
Committer: Junio C Hamano [EMAIL PROTECTED]  2005-05-05 16:16:54
Parent: fc54a9c30ccad3fde5890d2c0ca2e2acc0848fbc  (Update 
git-apply-patch-script ...)
Parent: 9e30dd7c0ecc9f10372f31539d0122db97418353  (Make 
git-prune-script executa ...)
Parent: c4b83e618f1df7d8ecc9392fa40e5bebccbe6b5a  (Do not write out new 
index if ...)
Parent: 660265909fc178581ef327076716dfd3550e6e7b  (diff-cache shows 
differences  ...)
Parent: b28858bf65d4fd6d8bb070865518ec43817fe7f3  (Update diff engine 
for symlin ...)

Octopus merge of the following five patches.
	
	  Update git-apply-patch-script for symbolic links.

  Make git-prune-script executable again.
  Do not write out new index if nothing has changed.
  diff-cache shows differences for unmerged paths without --cache.
  Update diff engine for symlinks stored in the cache.
	
	Signed-off-by: Junio C Hamano [EMAIL PROTECTED]


where all the parent commit ID's are clickable, because the new lines are 
added as part of the comment string, and thus the regular clickability 
thing will match them automatically.


This new functionality is great except when it truncates the commit 
description needlessly.


When running gitk full-screen on a large display, I have a commit 
information window that is much wider than needed for the truncated 
parent information. Leaving me with a lot of whitespace that should be 
used for the commit descriptions.


On a related nit: some of the diffs I'm viewing have lines longer than 
the width of the commit information window and it's annoying that gitk 
wraps the line rather than providing horizontal scrolling.


How about implementing horizontal scrolling in the commit information 
window when the commit text or the diffs are wider than the window and 
not truncating the commit descriptions?

-
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: GIT 0.99.4 (preview)

2005-08-07 Thread Horst von Brand
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 [EMAIL PROTECTED]
+Vendor:Junio C Hamano [EMAIL PROTECTED]
 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 [EMAIL PROTECTED]
+- 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 [EMAIL PROTECTED]
 - Add the man pages, and the --without docs build option
+
 * Wed Jul 7 2005 Chris Wright [EMAIL PROTECTED]
 - 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, ChileFax:  +56 32 797513
-
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