| From | Subject | Date |
|---|---|---|
| Sam Vilain | [PATCH] make cg-commit --review restore original tree st ...
If you delete hunks from the patch that 'cg-commit -p' shows you, then
they are lost 'forever'. Let's put back everything how it was
beforehand instead.
---
cg-commit | 25 +++++++++++++++++--------
1 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/cg-commit b/cg-commit
index 01a4eb7..81b3619 100755
--- a/cg-commit
+++ b/cg-commit
@@ -568,18 +568,16 @@ else
fi
rm "$LOGMSG2"
+pine_for_darcs() {
+ die "unable to revert the new patch; the original patch is available in ...
| Oct 20, 6:11 pm 2006 |
| Jakub Narebski | [RFC] Syntax highlighting for combined diff
So the question is how to color combined diff format (what should be syntax
highlighting for combined diff format). If branches columns have only
pluses we use the same color as for adding line in ordinary diff; if
branches column consist only of minuses we use the same color as for
removing line in ordinary diff. Can there be mixture of plusses and
minuses? How git-diff --color solves this?
Should we in gitweb output change color slightly depending on number of
plusses or minuses?
-- ...
| Oct 20, 5:35 pm 2006 |
| Jakub Narebski | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
Well, there was (abandoned for now) idea of rr2-cache, the cache of how
renames were resolved during merge conflict resolving.
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
-
| Oct 20, 4:24 pm 2006 |
| Petr Baudis | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
Dear diary, on Sat, Oct 21, 2006 at 01:24:51AM CEST, I got a letter
Is that really relevant? It rather seems something like rerere, which is
handy, but only if you are the one who is actually supposed to have clue
on how should it be resolved; the caches aren't replicated on clones.
--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo ...
| Oct 20, 4:28 pm 2006 |
| Junio C Hamano | Re: VCS comparison table
I was not talking about "git pull". I was talking about "git
show".
-
| Oct 20, 6:27 pm 2006 |
| Linus Torvalds | Re: VCS comparison table
Duh. I don't know why I misread that.
Yeah, that makes no sense at all. I _think_ "git show" should be the same
thing as a single-entry "git log -p".
Linus
-
| Oct 20, 6:55 pm 2006 |
| Junio C Hamano | Re: VCS comparison table
I am not bold enough to say _exactly_ N places, but you missed
at least one more important one. Merge simplification favors
the earlier parents over later ones.
-
| Oct 20, 4:19 pm 2006 |
| Linus Torvalds | Re: VCS comparison table
Well, that one actually makes sense. It's just the stat from the previous
state, after all, and it actually is done _together_ with the operation
that causes the diffs.
So that one I don't think you can really even claim.
Also, it's not even the "first parent". Look closer. It's literally
"previous state", because it does so for a fast-forward too. It's from
ORIG_HEAD.
Linus
-
| Oct 20, 6:19 pm 2006 |
| Junio C Hamano | Re: VCS comparison table
There is another one similar to the gitweb one you mentioned:
git-show --stat on a merge. We deliberately chose to show the
difference from the first parent; it is called "showing the
changes the person who made this merge saw".
-
| Oct 20, 6:09 pm 2006 |
| Linus Torvalds | Re: VCS comparison table
Which is probably slightly inconsistent (although I seriously doubt
anybody really cares - when we simplify a merge we obvioously do it
exactly because the parents are identical wrt the files we are following).
Most of the rest of commit traversal tend to have a rule that says
"traverse youngest parent first", simply by virtue of the fact that
revlist() normally pops off the queue in date order. But Jakub is
certainly correct that when we do "^" we just take the first one.
And ...
| Oct 20, 5:07 pm 2006 |
| Robin Rosenberg | StGIT and rerere
Hi,
It seems stgit does not use git-rerere, so why not? Any reason other than it
hasn't been done yet?
I abuse stgit heavily, by frequently reording patches, which for some patches
result in re-occuring conflicts. git-rerere seems to be the solution.
What's the "rules" for when to invoke rerere? It seems it is mostly automatic
in git, but since only the porcelainish commands use it, that means StGIT
doesn't.
So here is what I *think* needs to be done. Seems simple enough.
stg push, ...
| Oct 20, 3:39 pm 2006 |
| Lars Hjemli | [PATCH] Fix typo in show-index.c
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
---
show-index.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/show-index.c b/show-index.c
index c21d660..a30a2de 100644
--- a/show-index.c
+++ b/show-index.c
@@ -8,7 +8,7 @@ int main(int argc, char **argv)
static unsigned int top_index[256];
if (fread(top_index, sizeof(top_index), 1, stdin) != 1)
- die("unable to read idex");
+ die("unable to read index");
nr = 0;
for (i = 0; i < 256; i++) {
...
| Oct 20, 2:24 pm 2006 |
| Jakub Narebski | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
The names of options clash somewhat with -M and -C in diffcore,
which detect contents 'M'oving (renaming files), and contents
'C'opying (copying files), where in git-pickaxe -C is still about
code movement, only across files (-M -M or --MM?).
Would git-pickaxe try to do also copy-and-paste within the file,
and across files?
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
-
| Oct 20, 1:40 pm 2006 |
| Dmitry V. Levin | [PATCH] git-clone: define die() and use it.
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
---
git-clone.sh | 61 +++++++++++++++++++++++-----------------------------------
1 files changed, 24 insertions(+), 37 deletions(-)
diff --git a/git-clone.sh b/git-clone.sh
index bf54a11..786d65a 100755
--- a/git-clone.sh
+++ b/git-clone.sh
@@ -8,11 +8,15 @@ # Clone a repository into a different di
# See git-sh-setup why.
unset CDPATH
-usage() {
- echo >&2 "Usage: $0 [--template=<template_directory>] [--use-separate-remote] ...
| Oct 20, 12:38 pm 2006 |
| Nicolas Pitre | [PATCH] add the capability for index-pack to read from a ...
This patch only adds the streaming capability to index-pack. Although
the code is different it has the exact same functionality as before to
make sure nothing broke.
This is in preparation for receiving packs over the net, parse them on
the fly, fix them up if they are "thin" packs, and keep the resulting
pack instead of exploding it into loose objects. But such functionality
should come separately.
One immediate advantage of this patch is that index-pack can now deal
with packs up ...
| Oct 20, 11:45 am 2006 |
| Jakub Narebski | Re: VCS comparison table
Or as reminded, use -n, --no-summary option to git pull.
BTW. I'd rather have -n == --no-commit for git pull...
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
-
| Oct 20, 9:24 am 2006 |
| Jim Meyering | [PATCH] cogito: Honor either post-commit script name; fa ...
Hi,
I promised this patch some time ago, made the changes,
and then never sent them. This is slightly different
from the current implementation in that it fails when both
scripts are executable. Also, it factors out the script names and
adds tests.
Signed-off-by: Jim Meyering <jim@meyering.net>
---
cg-commit | 43 ++++++++++++++++++++++++++++++-------------
t/t9800-hooks.sh | 37 +++++++++++++++++++++++++++++++++++++
2 files changed, 67 insertions(+), 13 deletions(-)
diff ...
| Oct 20, 9:15 am 2006 |
| Jakub Narebski | Re: [PATCH 2/2] Remove dead code after direct graph drawing
...which would be stripped automatically
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
-
| Oct 20, 9:01 am 2006 |
| Jakub Narebski | Re: [PATCH] Don't use $author_name undefined when $from ...
Not true. If GNU patch (and git-apply) can detect where diff begins,
and can detect if diff was truncated, then highlighting mode can
distinguish between diff -u part and rest... well, unless you intermix
diff-u output and arbitrary text (so the patch would not apply, but what
happens when commenting a patch).
Still I'd rather relax highlighting code to not highlight "SPC LF"
than to change diff -u format.
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
-
| Oct 20, 8:48 am 2006 |
| Johannes Schindelin | Re: VCS comparison table
Hi,
Funny. When you type in "mercurial" and "benchmark" into Google, the
_first_ hit is into "git Archives: Mercurial 0.4b vs git patchbomb
benchmark". Performed by the good Mercurial people.
Leaving git as winner.
Ciao,
Dscho
-
| Oct 20, 8:16 am 2006 |
| Jakub Narebski | Re: VCS comparison table
Mercurial also claims that. It probably depends on the benchmark, though.
But Mercurial (hg) lacks from what I understand persistent branches, and
has only partial support for renames. YMMV.
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
-
| Oct 20, 8:05 am 2006 |
| Jakub Narebski | Re: VCS comparison table
As it was mentioned somewhere else in this thread, to compare times
for pull/merge in git with other SCM one should in principle substract
time for diffstat/git diff --stat.
--
Jakub Narebski
Poland
-
| Oct 20, 9:05 am 2006 |
| Jakub Narebski | Re: VCS comparison table
Check out http://git.or.cz/gitwiki/GitBenchmarks section "Quilt import
comparison of Git and Mercurial" for the latest (OLS2006) benchmark
by Mercurial. Probably not indexed by Google, or doesn't have high
pagerank because it is in PDF and fairly new (therefore has low
"citations" number).
--
Jakub Narebski
Poland
-
| Oct 20, 8:28 am 2006 |
| Johannes Schindelin | Re: VCS comparison table
Hi,
Thanks for the hint!
BTW the tests in Clone/status/pull make sense, especially the "4 times
slower on pull/merge". In my tests, merge-recur (the default merge
strategy, which was written in Python, and is now in C) was substantially
I hope these posts boost the pagerank.
Ciao,
Dscho
-
| Oct 20, 8:39 am 2006 |
| Linus Torvalds | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
That's fine, but please don't call the git rename handling "maybe" or
"partial", like a lot of people seem to do.
Git _definitely_ handles renames, both in everyday life and when merging.
Some people may not like how it's done, but other (I'll say "equally
informed", even though obviously I know better ;) people really don't like
the way bzr or others do their rename handling.
Linus
-
| Oct 20, 10:18 am 2006 |
| Jakub Narebski | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
> > > === added directory
| Oct 20, 11:35 am 2006 |
| David Lang | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
isn't the default to consider them a copy if they are 80% the same, with a
command line option to tweak this (IIRC -m, but I could easily be wrong)
David Lang
-
| Oct 20, 10:58 am 2006 |
| Linus Torvalds | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
Well, the thing is, that 10% of the functionality usually takes a whole
lot _less_ than 10% of the work.
The stuff you can think through (and argue about) tends to be the easy
stuff. Exactly because you _can_ think about it abstractly.
The stuff that is actually really hard and time-consuming is the stuff
that you find out in practice, and you have to iterate on.
In kernels, for example, it seems like 99% of the effort ends up being
hardware-dependent stuff. Getting architecture ...
| Oct 20, 12:31 pm 2006 |
| Linus Torvalds | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
You really cannot expect to get any kind of performance at all unless you:
- are able to ignore 99.9% of all files on merging (ie you have to be
able to totally ignore the files that are identical in both sides, and
you really shouldn't even _care_ about why they ended up being
identical)
- are able to ignore 99% of what the commits _did_ in between the merges
(ie if you need to look at them at all, only look at the part that
matters for the 0.1% of files that you ...
| Oct 20, 12:00 pm 2006 |
| Jakub Narebski | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
And Darcs is, from opinions I've read, dog-slow.
--
Jakub Narebski
Poland
-
| Oct 20, 11:47 am 2006 |
| Aaron Bentley | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
That's interesting, because I've always thought one of the strengths of
file-ids was that you only had to worry about end-points, not how you
got there.
How do you handle renames without looking at the history?
Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - ...
| Oct 20, 12:10 pm 2006 |
| Jan Hudec | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
> > === added directory
| Oct 20, 11:12 am 2006 |
| Petr Baudis | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
Dear diary, on Fri, Oct 20, 2006 at 07:48:58PM CEST, I got a letter
Well it's certainly "interesting" and fun to see, but is it equally fun
to handle mismerges caused by a broken detection?
I've talked to some people who really didn't mind (or even liked) Git's
heuristics when it came to _inspecting_ movement of content, but were
really nervous about merge following such heuristics.
--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
#!/bin/perl ...
| Oct 20, 1:23 pm 2006 |
| Jakub Narebski | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
Sorry, I have forgot to put in email "git checkout B"
--
Jakub Narebski
Poland
-
| Oct 20, 11:46 am 2006 |
| David Lang | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
sorry, missed that.
David Lang
-
| Oct 20, 1:55 pm 2006 |
| Robert Collins | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
We have a few features we're focusing on right now, but coming shortly
after them we hope to address parallel imports [which this is a case of]
better than we do now. I have a number of ideas, and I'm sure other devs
do too, about the right way to solve this. Fundamentally, I think using
1-1 mapped path ids [which can be considered a memo of the origin commit
id + path] of a path is not sufficiently rich a representation of what
happens to paths - there is a dual that you can convert to, which ...
| Oct 20, 4:05 pm 2006 |
| Junio C Hamano | [PATCH 1/2] git-pickaxe: introduce heuristics to "best m ...
Instead of comparing number of lines matched, look at the
matched characters and count alnums, so that we do not pass
blame on not-so-interesting lines, such as empty lines and lines
that are indentation with closing brace.
Add an option --score-debug to show the score of each
blame_entry while we cook this further on the "next" branch.
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
* This comes on top of "next". The next one makes output from
"pickaxe -C commit" actually make ...
| Oct 20, 3:41 pm 2006 |
| Shawn Pearce | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
As good as the content based rename detection is I got burned
recently by it.
I renamed hundreds of small files in one shot and also did a few
hundered adds and deletes of other small XML files. Git generated
a lot of those unrelated adds/deletes as rename/modifies, as their
content was very similiar. Some people involved in the project
freaked as the files actually had nothing in common with one
another... except for a lot of XML elements (as they shared the
same DTD).
--
Shawn.
-
| Oct 20, 10:21 am 2006 |
| Aaron Bentley | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I guess I don't mind a bit of high-mmv discussion, so long as it doesn't
get in the way of real work. Polishing these kinds of things seems to
I think the great motivator for exploring other merge algorithms has
been criss-cross merge. There are some workflows (e.g. the Launchpad
workflow) in which heavy mesh-merging takes place, leading to frequent
criss-crosses.
Bog-standard three-way doesn't handle that criss-cross very well. ...
| Oct 20, 12:04 pm 2006 |
| David Lang | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
remember, git only stores the results. so when you are merging it doesn't even
look for renames.
the only time you get renames is after-the-fact when you ask git for a report
about what changed. then (if you enable rename detection) it will tell you what
files have changed, and what files look like they may have been renames
(possibly with changes). but if you don't ask git to look for renames it won't
bother and you can just ignore the concept entirely.
or if you only want complete ...
| Oct 20, 1:49 pm 2006 |
| Linus Torvalds | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
Heh. We can probably tweak the heuristics (one of the _great_ things about
content detection is that you can fix it after the fact, unlike the
alternative).
That said, I've personally actually found the content-based similarity
analysis to often be quite informative, even when (and perhaps
_especially_ when) it ended up showing something that the actual author of
the thing didn't intend.
So yeah, I've seen a few strange cases myself, but they've actually been
interesting. Like ...
| Oct 20, 10:48 am 2006 |
| Linus Torvalds | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
There are lots of problems with file ID's. One of the more obvious ones is
indeed that if you arrive at the same state two different ways (eg patches
vs "native SCM"), you end up with two fundmanetally different trees. Even
though clearly there was no real difference.
There are other serious problems. For example, file-ID based systems
invariably have _huge_ problems with handling two branches deleting and
renaming things differently, and we had several issues with that during
the ...
| Oct 20, 10:59 am 2006 |
| Linus Torvalds | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
This sounds somewhat like what I think BK did. I'm not sure if BK actually
marked it as a conflict or whether BK just warned about "changes to
deleted file" or something similar, but it didn't entirely _silently_
throw them away.
But I hope this shows some of the basic problems.
The much more _serious_ problem of "file identity" tracking is actually
that you can't track partial file movement or file copies sanely. The
thing is, tracking things at file boundaries simply is ...
| Oct 20, 4:59 pm 2006 |
| Aaron Bentley | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
All solutions have disadvantages. We prefer the disadvantages that come
from using file-ids over the disadvantages that come from using
content-based rename detection.
Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFFOQFo0F+nu1YWqI0RAlCnAJwIqwuPG/IPBBQWaGyEImTm4GMP6QCfTV89
QZaMQsTqXBH8wrt7VKAHpII=
=Qx2i
-----END PGP SIGNATURE-----
-
| Oct 20, 10:03 am 2006 |
| Jakub Narebski | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
Aaron Bentley wrote:
> === added directory
| Oct 20, 9:21 am 2006 |
| Jeff Licquia | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
If you ask me, that's the most interesting idea in this whole thread.
-
| Oct 20, 4:39 pm 2006 |
| Junio C Hamano | [PATCH 2/2] git-pickaxe: introduce heuristics to avoid " ...
This adds scoring logic to blame_entry to prevent blames on very
trivial chunks (e.g. lots of empty lines, indent followed by a
closing brace) from being passed down to unrelated lines in the
parent.
The current heuristics are quite simple and may need to be
tweaked later, but we need to start from somewhere.
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
builtin-pickaxe.c | 36 ++++++++++++++++++++++++++++++++----
1 files changed, 32 insertions(+), 4 deletions(-)
diff --git ...
| Oct 20, 3:41 pm 2006 |
| Shawn Pearce | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
Aside from that one strange case I just mentioned I've always seen
the strategy to work very well. Its never done something I didn't
expect and I've never seen copies or that I didn't expect to see,
knowing what the author of the change did.
So even though I had a little bit of trouble with that rename
situation above I'm _very_ happy with the way Git handles renames.
And the truth is that case above really was quite correct: XML is
very verbose. When 70% of the file is just required XML ...
| Oct 20, 1:53 pm 2006 |
| Jakub Narebski | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
If I remember correctly, git decided on contents (plus filename)
similarity based renames detection because 1), it is more generic
as it covers (or can cover) contents moving not only wholesome rename
of a file, and 2) because file-id based renames handling works only
if you explicitely use SCM command to rename file, which is not the
case of non-SCM-aware channel like for example patches (and accepting
ordinary patches is important for Linux kernel, the project git was
created for).
Another ...
| Oct 20, 10:45 am 2006 |
| Aaron Bentley | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hmm. Could you say more here? The only examples I can think of for
handling renames are situations that can be expressed as a merge.
For example, populating a working tree can be expressed as:
BASE: nothing
THIS: nothing
OTHER: aabbccddee
Or revert can be expressed as
BASE: current
THIS: current
OTHER: aabbccddee
Or fast-forward pull
BASE: last-commit
THIS: current
OTHER: aabbccddee
Aaron
-----BEGIN PGP ...
| Oct 20, 10:47 am 2006 |
| Linus Torvalds | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
So yes, merges are the situation where renames are normally considered a
"problem", but it's actually not nearly the most every-day situation at
all.
The most common one is actually just showing things as a diff.
If you are looking at a code-change, there's an absolutely _huge_
difference if you look at the result as a "delete this huge file" and
"create this other huge file" and seeing it as a "move this huge file from
here to here, and change a few lines in the process".
So ...
| Oct 20, 11:06 am 2006 |
| Junio C Hamano | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
I've reordered the git-pickaxe I parked in "pu" while 1.4.3-rc
cycle and merged it into "next".
The earlier one I was futzing with in "pu" had built-in
heuristics and pure mechanisms mixed together in the same patch,
which was quite bad as development history. I think the
reordered sequence shows the logical evolution better.
1. git-pickaxe: blame rewritten.
This implements the infrastructure (parent traversal,
identifying "corresponding path" in the parent -- aka
...
| Oct 20, 1:17 pm 2006 |
| Linus Torvalds | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
Git just slurps in all three trees. I actually think that the current
merge-recursive.c does it the stupid way (ie it expands all trees
recursively, regardless of whether it's needed or not), but I should
really check with Dscho, since I had nothing to do with that code.
I wrote a tree-level merger that avoided doing the recursive tree reading
when the tree-SHA1's matched entirely, and re-doing the latest merge using
that took all of 0.037s, because it didn't recursively expand any of ...
| Oct 20, 1:57 pm 2006 |
| Aaron Bentley | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
No, bundles contain 1 or more revisions. They contain all the ancestors
of X that are not ancestors of Y.
Only the diff from X to Y is shown, but the diffs for all other
revisions are present in the MIME-encoded section.
Consider these four revisions in a straight-line ancestry: a, b, c, d.
'a' is a common ancestor. b, c and d are the revisions that are missing
from the target repository.
A default bundle will contain
metadata for ...
| Oct 20, 4:33 pm 2006 |
| Junio C Hamano | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
For people new to the list, the message is:
http://thread.gmane.org/gmane.comp.version-control.git/27/focus=217
I think I've quoted this link at least three times on this list;
I consider it is _the_ most important message in the whole list
archive. If you haven't read it, read it now, print it out,
read it three more times, place it under the pillow before you
sleep tonight. Repeat that until you can recite the whole
message. It should not take more than a week.
To me, ...
| Oct 20, 6:26 pm 2006 |
| Junio C Hamano | Re: git-merge-recursive, was Re: [ANNOUNCE] Example Cogi ...
While we are talking about merge-recursive, I could use some
help from somebody familiar with merge-recursive to complete the
read-tree changes Linus mentioned early this month.
The issue is that we would want to remove one verify_absent()
call in unpack-tree.c:threeway_merge(). When read-tree decides
to leave higher stages around, we do not want it to check if the
merge could clobber a working tree file, because having an
unrelated file at the same path in the working tree sometimes is
and ...
| Oct 20, 7:17 pm 2006 |
| Jon Smirl | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
It may be worth doing something special for licenses. Logs of small
Mozilla files are also getting tripped up by the large copyright
notices. The notices take up a lot of space too. The Mozilla license
has been changed five times. That is 110,000 files times one to five
licenses at 800-1500 characters each. 500MB+ of junk before
compression.
You could have a file of macro substitutions that is applied/expanded
when files go in/out of git. The macros would replace the copyright
notices ...
| Oct 20, 11:15 am 2006 |
| Jeff King | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
Git does not do what you expect here. It notes that files moved, but it
does not have a concept of directories moving. Git could, even without
file-ids or special patch types, figure out what happened by noting that
every file in data/ was renamed to its analogue in greetings/, and infer
that previously non-existant files in data/ should also be moved to
greetings/.
However, I'm not sure that I personally would prefer that behavior. In
some cases you might actually WANT data/goodbye.txt, ...
| Oct 20, 3:59 pm 2006 |
| Linus Torvalds | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
Here's a real-life schenario that we hit several times with BK over the
years:
- take a real repository, and a patch that gets discussed that adds a new
file.
- take two different people applying that patch to their trees (or, do
the equivalent thing, which is to just create the same filename
independently, because the solution is obvious - and the same - to
both developers).
- now, have somebody merge both of those two peoples trees (eg me)
- have the two people ...
| Oct 20, 11:48 am 2006 |
| Petr Baudis | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
Dear diary, on Fri, Oct 20, 2006 at 10:49:53PM CEST, I got a letter
Of course it does look for renames; when you use the recursive strategy,
it will try to merge across renames.
--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)
-
| Oct 20, 1:53 pm 2006 |
| Jakub Narebski | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
(slightly corrected example).
A$ git branch B
A$ git mv data greetings
A$ git commit -a -m "Renamed the data directory to greetings"
A$ git checkout B
B$ echo 'Goodbye World!' > data/goodbye.txt
B$ git add data/goodbye.txt
B$ git commit -a -m "Added goodbye message."
B$ git checkout A
A$ git pull . B
Trying really trivial in-index merge...
fatal: Merge requires file-level merging
Nope.
Merging HEAD with 4a8a1a7941f214c6173786b583830b4f74a67c1f
Merging: ...
| Oct 20, 12:14 pm 2006 |
| Petr Baudis | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
Dear diary, on Fri, Oct 20, 2006 at 05:34:39PM CEST, I got a letter
Aha, so by default a bundle can carry just a _single_ revision?
That doesn't sound right either, because then it wouldn't make sense to
talk about "combined" or "simple" diffs. So I guess sending a bundle
really is taking n revisions at your side, bundling them to a single
diff and when the other side takes it, it will result in a single
revision? That is basically what our merge --squash does.
Hmm, but that doesn't sound ...
| Oct 20, 3:40 pm 2006 |
| Jakub Narebski | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
If you have only mega-diff, you can comment only on this mega-diff.
It is more usefull for changes which have natural mult-commit history,
As _series_ of patches. You have git-format-patch + git-send-email
to format and send them, git-am to apply them (as patches, not as branch).
I was under an impression that user sees only mega-patch of all the
revisions in bundle together, and rest is for machine consumption only.
cg-bundle doesn't have this "mega-diff", but has shortlog (does ...
| Oct 20, 7:56 am 2006 |
| Robert Collins | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
I meant to add, that I think inference is a great tool to use as an
adjunct to whatever explicit data one can capture.
-Rob
--=20
GPG key available at: <http://www.robertcollins.net/keys.txt>.
| Oct 20, 4:15 pm 2006 |
| Linus Torvalds | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
You first handle all the non-renames that just merge on their own. That
takes care of 99.99% of the stuff (and I'm not exaggerating: in the
kernel, you have ~21000 files, and most merges don't have a single rename
to worry about - and even when you do have them, they tend to be in the
"you can count them on one hand" kind of situation).
Then you just look at all the pathnames you _couldn't_ resolve, and that's
usually cut down the thing to something where you can literally use a lot ...
| Oct 20, 12:46 pm 2006 |
| Aaron Bentley | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Agreed. We start by comparing BASE and OTHER, so all those comparisons
are in-memory operations that don't hit disk. Only for files where BASE
and OTHER differ do we even examine the THIS version.
We can do a do-nothing kernel merge in < 20 seconds, and that's
comparing every single file in the tree. In Python. I was aiming for
So in the simple case, you compare unmatched THIS, OTHER and BASE files
Well, I certainly appreciate that. ...
| Oct 20, 1:29 pm 2006 |
| Johannes Schindelin | git-merge-recursive, was Re: [ANNOUNCE] Example Cogito A ...
AFAIR yes, it does the dumb thing, namely it does not take advantage of
trees being identical when their SHA1s are identical.
Not me. Only that there is much potential for optimization (meaning
performance, not the basic algorithm).
Ciao,
Dscho
-
| Oct 20, 7:03 pm 2006 |
| Aaron Bentley | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
It is. It's a description of how to produce revision X given revision
If you want to do it exactly the same way, you send a series of bundles.
The bundle format can also support sending a single bundles that
displays the series of patches, though there's currently no UI to select
All of it is for machine consumption. The MIME-encoded sections are a
series of patches. They're usually MIME-encoded to avoid confusion with
the overview ...
| Oct 20, 8:34 am 2006 |
| Jeff Licquia | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
I tried this to see what bzr would do. Here's the critical point where
the first merges are done ("a" is mainline, "b" and "c" are external
branches being merged into "a").
---
jeff@lsblap:~/tmp/linus-file-id/a$ bzr pull ../b
All changes applied successfully.
1 revision(s) pulled.
jeff@lsblap:~/tmp/linus-file-id/a$ bzr pull ../c
bzr: ERROR: These branches have diverged. Use the merge command to reconcile them.
jeff@lsblap:~/tmp/linus-file-id/a$ bzr merge ../c
Conflict adding file file2. ...
| Oct 20, 3:13 pm 2006 |
| Aaron Bentley | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I guess this depends on whether you consider the brainstorming and
discussion to be part of the work of polishing, and I do mean polishing.
Getting from something that works 90% of the time to something that
I did rewrite our merge code once, but that was because the API was
quite hard to deal with and made it hard to maintain. I agree that it's
important to focus effort on the areas that make a difference.
On the other hand, our "exotic" ...
| Oct 20, 1:12 pm 2006 |
| Linus Torvalds | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
Btw, this is a pet peeve of mine, and it is not at all restricted to
the SCM world.
In CompSci in general, you see a _lot_ of papers about things that almost
don't matter - not because the issues are that important in practice, but
because the issues are something small enough to be something you can
discuss and explain without having to delve into tons of ugly detail, and
because it's something that has a lot of "mental masturbation" associated
with it - ie you can discuss it ...
| Oct 20, 11:30 am 2006 |
| Andy Parkins | Re: [PATCH] Remove git-send-email references from docume ...
Please ignore. I'm a muppet. I'm using the debian packages for git; and=20
git-send-email is packaged separately in the git-email package.
Andy
=2D-=20
Dr Andy Parkins, M Eng (hons), MIEE
andyparkins@gmail.com
| Oct 20, 7:56 am 2006 |
| Jakub Narebski | Re: [PATCH] Remove git-send-email references from docume ...
Please configure your mailer to _not_ send emails in Multipart/Mixed form!
For example it screws up GMane news<->email interface.
Which git version do you use?
1063:jnareb@roke:~/git> which git-send-email
/usr/bin/git-send-email
1064:jnareb@roke:~/git> rpm -qf /usr/bin/git-send-email
git-email-1.4.2.1-1
1065:jnareb@roke:~/git> git --version
git version 1.4.2.1
git-send-email is created from git-send-email.perl during instalation
(by make install). And it works.
--
Jakub ...
| Oct 20, 7:46 am 2006 |
| andyparkins | (No subject)
From 0e3c0aefc3276bd271553d171ed9bcc52d85230e Mon Sep 17 00:00:00 2001
From: Andy Parkins <andyparkins@gmail.com>
Date: Fri, 20 Oct 2006 15:24:40 +0100
Subject: [PATCH] Use email address only for looking up signing key in git-tag
MIME-Version: 1.0
X-TUID: 260426abfb2864ec
X-Length: 2046
To: git@vger.kernel.org
Content-Type: Multipart/Mixed;
boundary="Boundary-00=_owNOFStzYauRv42"
Message-Id: <200610201524.40525.andyparkins@gmail.com>
This is a multi-part message in MIME ...
| Oct 20, 7:24 am 2006 |
| Johannes Schindelin | Re: your mail
Hi,
your email is horridly mixed here. I get an empty subject here, and the
complete email header at the beginning of the email:
But it does! I just removed it, and "make" remade it. I don't even see in
the Makefile why it should _not_ be made...
Ciao,
Dscho
-
| Oct 20, 7:42 am 2006 |
| andyparkins | (No subject)
From 9c128bc4b9b85385b7b98ceae0c89283d70e5d45 Mon Sep 17 00:00:00 2001
From: Andy Parkins <andyparkins@gmail.com>
Date: Fri, 20 Oct 2006 15:24:22 +0100
Subject: [PATCH] Remove git-send-email references from documentation
MIME-Version: 1.0
X-TUID: 1fbae8e75caaf795
X-Length: 1933
To: git@vger.kernel.org
Content-Type: Multipart/Mixed;
boundary="Boundary-00=_WwNOFc8Re2ORHlu"
Message-Id: <200610201524.22493.andyparkins@gmail.com>
This is a multi-part message in MIME ...
| Oct 20, 7:24 am 2006 |
| andyparkins | (No subject)
From 0e3c0aefc3276bd271553d171ed9bcc52d85230e Mon Sep 17 00:00:00 2001
From: Andy Parkins <andyparkins@gmail.com>
Date: Fri, 20 Oct 2006 15:21:02 +0100
Subject: [PATCH] Use email address only for looking up signing key in git-tag
To: git@vger.kernel.org
MIME-Version: 1.0
X-TUID: 312298ab1a3cb74a
X-UID: 98
X-Length: 2046
Content-Type: Multipart/Mixed;
boundary="Boundary-00=_PtNOFMGj306NIAG"
Message-Id: <200610201521.03122.andyparkins@gmail.com>
This is a multi-part message in MIME ...
| Oct 20, 7:21 am 2006 |
| Seth Falcon | problem with gitk --all on OSX, unknown option "-state"
Hi,
On OSX (ppc 10.4.8), I'm unable to run gitk --all. Without arguments,
gitk seems to work fine. This is with git version 1.4.2.4.g3453.
There error message is surprising because the line before has:
.bar.view entryconf 2 -state normal
and there is no complaint there about -state being unknown...
ziti:~/proj/bioc-2.0-git$ gitk --all
Error in startup script: unknown option "-state"
while executing
".bar.view entryconf 3 -state normal"
invoked from within
"if ...
| Oct 20, 7:11 am 2006 |
| Peter Eriksen | Re: [ANNOUNCE] GIT 1.4.3
How does it come to the result, that this is a rename?
Peter
-
| Oct 20, 6:26 am 2006 |
| andyparkins | (No subject)
From 9c128bc4b9b85385b7b98ceae0c89283d70e5d45 Mon Sep 17 00:00:00 2001
From: Andy Parkins <andyparkins@gmail.com>
Date: Fri, 20 Oct 2006 14:25:48 +0100
Subject: [PATCH] Remove git-send-email references from documentation
To: git@vger.kernel.org
MIME-Version: 1.0
X-TUID: 17b00343571b31b8
X-UID: 99
X-Length: 1933
Content-Type: Multipart/Mixed;
boundary="Boundary-00=_c5MOFrK5Yix34S1"
Message-Id: <200610201425.48598.andyparkins@gmail.com>
This is a multi-part message in MIME ...
| Oct 20, 6:25 am 2006 |
| Jakub Narebski | Re: VCS comparison table
Perhaps the cause for not having plugins in GIT (besides the fact that
it follows OSS + Unix guidelines) is that git is not libified, yet. It
is "scriptified", i.e. it has many helper programs, and has options for
pipelining that it is really easy to use in scripts (Cogito, pg, StGit),
but the libification effort is [only] ongoing.
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
-
| Oct 20, 4:38 am 2006 |
| Jakub Narebski | Oct 20, 4:24 am 2006 | |
| Matthieu Moy | Re: VCS comparison table
Well, indeed, I think bug _reporting_ should be somehow centralized,
while bug _fixing_ can be decentralized: You fix a bug, you mark it as
fixed, and then the main branch gets the information that the bug is
fixed when the bugfix is merged.
--
Matthieu
-
| Oct 20, 5:34 am 2006 |
| Petr Baudis | Re: VCS comparison table
Dear diary, on Fri, Oct 20, 2006 at 03:20:42PM CEST, I got a letter
Yes but noone did the infrastructure yet. :-) Also, we need a way to
make it worth smooth, e.g. so that you don't have to download any
special stuff after cloning a branch - thus the post-commit hook needs
to be cloned too, but you also need to deal with the security
implications reasonably. (We would very much like to have "hooks
cloning" in Git in our in-SUSE usage as well; I didn't get to it yet.)
On a somewhat related ...
| Oct 20, 6:47 am 2006 |
| Jakub Narebski | Re: VCS comparison table
Aaron Bentley wrote:
>>>
| Oct 20, 3:53 am 2006 |
| Jakub Narebski | Re: VCS comparison table
But you don't need much infrastructure for branch fixing. Fix it in
repository, and write bug number (you have to have centralized bugtracker
for numbers) or bug identifier in commit message. You write (or post-commit
hook writes) in bugtracker that bug was fixed in commit <commit-id>.
You tell mainline to pull from you. That's all.
--
Jakub Narebski
Poland
-
| Oct 20, 6:20 am 2006 |
| Johannes Schindelin | Re: VCS comparison table
Hi,
You can document your disbelief.
But it does not change a thing. Since v0.99~653, we do not have any
collision check, even if compiled with COLLISION_CHECK.
Ciao,
Dscho
-
| Oct 20, 4:37 am 2006 |
| Johannes Schindelin | Re: VCS comparison table
Hi,
It does not. The relevant parts in the code read like this:
sha1_filc.c:1442
/* FIXME!!! Collision check here ? */
sha1_file.c:1541
/*
* FIXME!!! We might do collision checking here, but we'd
* need to uncompress the old file and check it. Later.
*/
It was hoped that the people who actually care would implement that
functionality. (Note that in an earlier version, the check was
implemented, but ...
| Oct 20, 5:48 am 2006 |
| David Lang | Re: VCS comparison table
I had the same disbelief as you about this, however the last time this came up
Linus pointed out something that satisfied me.
any action in git that could create or or recreate an object will not overwrite
an object that it thinks that it already has.
so
if you create a new local file that would conflict and save it, git will accept
your save and throw away the new file.
if you pull from a remote repository and there is a file there that conflicts
with a file you already have it ...
| Oct 20, 10:23 am 2006 |
| Jakub Narebski | Re: VCS comparison table
So why it is left in Makefile? Does defining this change a thing
or not (in which case this section should be removed)?
--
Jakub Narebski
Poland
-
| Oct 20, 5:03 am 2006 |
| Jakub Narebski | Re: VCS comparison table
Or you can compile git with COLLISION_CHECK
From Makefile:
# Define COLLISION_CHECK below if you believe that SHA1's
# 1461501637330902918203684832716283019655932542976 hashes do not give you
# sufficient guarantee that no collisions between objects will ever happen.
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
-
| Oct 20, 4:09 am 2006 |
| Jakub Narebski | Re: VCS comparison table
Git "gitweb" (in git.git repo from some time) web interface provides OPML
and RSS feeds.
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
-
| Oct 20, 3:44 am 2006 |
| Jakub Narebski | Re: VCS comparison table
So if you want to compare merge performance with other SCM, you should
either add time to run diffstat for other SCM, or substract time to
run "git diff-tree --stat".
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
-
| Oct 20, 3:51 am 2006 |
| Linus Torvalds | Re: VCS comparison table
Naah. Just run "git pull -n". It's even documented:
OPTIONS
-n, --no-summary
Do not show diffstat at the end of the merge.
so while the _default_ is to always show the diffstat, you certainly can
easily do without it.
Linus
-
| Oct 20, 8:58 am 2006 |
| Shawn Pearce | Re: VCS comparison table
Oh, you mean that document that I orphaned when I got sidetracked
and forgot I hadn't quite finished it? :-)
--
Shawn.
-
| Oct 20, 6:36 am 2006 |
| Jakub Narebski | Re: VCS comparison table
And it certainly helps to explain user-visible differences between
Bazaar-NG and GIT; I'd like to put ComparisonWithBazaarNG page on
GitWiki (http://git.or.cz/gitwiki/) some time soon, in addition
to ComparisonWithMercurial I meant to add from some time (stemming
from discussion on #revctrl list on FreeNode), and in addition
to existing GitSvnComparison page on GitWiki).
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
-
| Oct 20, 3:40 am 2006 |
| Jakub Narebski | Re: VCS comparison table
I think that GIT separation of root, repository, and branches
namespaces is why there are so many calls for adding subproject
support to GIT; people want to change to GIT literally, for example
putting everything in one large repository.
In GIT there is no concept of root, like in CVS or SVN. You can
put repository anywhere. By default GIT looks for repository
in current directory or one of its parents; otherwise you have to
provide location of repository either by using GIT_DIR ...
| Oct 20, 3:32 am 2006 |
| Andy Parkins | Signed git-tag doesn't find default key
Hello,
I did this:
$ git tag -s adp-sign-tag
gpg: skipped "Andy Parkins <andyparkins@gmail.com>": secret key not availab=
le
gpg: signing failed: secret key not available
failed to sign the tag with GPG.
I believe the problem is that I have used the comment field in my key's UID=
=20
definition.
$ gpg --list-keys andy
pub 1024D/4F712F6D 2003-08-14
uid Andy Parkins (Google) <andyparkins@gmail.com>
So when git-tag looks for "Andy Parkins <andyparkins@gmail.com>"; ...
| Oct 20, 2:04 am 2006 |
| Linus Torvalds | Re: Signed git-tag doesn't find default key
I would suggest one of two things:
- specify the signing entity explicitly:
git tag -u "andyparkins@gmail.com" adp-sign-tag
- or just add a new alternate user ID to match the full git user ID.
Currently, your pgp key has the full ID "Andy Parkins (Google)
<andyparkins@gmail.com>", and the way gpg matches ID's, that will _not_
match an ID of "Andy Parkins <andyparkins@gmail.com>"
But you can just do something like
gpg --edit-key andyparkins@gmail.com
and then do an ...
| Oct 20, 9:32 am 2006 |
| Andy Parkins | Re: Signed git-tag doesn't find default key
Yeah, obviously that's one way; and while it doesn't really matter to me, i=
t=20
seems poor form that git doesn't work with gpg as it is. While one could o=
f=20
course use the "-u" switch, if that is the answer, then why bother with=20
I think it's doing the right thing unfortunately. If you search on any part
"Andy Parkins"
"<andyparkins@gmail.com>"
"andyparkins@gmail.com"
"andyparkins"
It finds it fine; the only thing it doesn't find is
"Andy Parkins ...
| Oct 20, 12:21 pm 2006 |
| Horst H. von Brand | Re: Signed git-tag doesn't find default key
Andy Parkins <andyparkins@gmail.com> wrote:
There very well might be... say you have a key for signing git stuff,
another one for emailing, another one for signing RPMs you create, ... I
believe that is the idea of the GPG comment field, precisely.
--
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 ...
| Oct 20, 5:52 pm 2006 |
| linux | Re: VCS comparison table
Git avoids the problem by using a very large gryptographic hash.
While recent cryptographic advances mean that it will soon be barely
possible to deliberately construct two files with the same SHA hash,
absent massivecomputational investment, it can be considered a truly
random hash function.
That means that, given N objects in the repository, there are N * (N-1)
/ 2 pairs, each of which is a chance to collide. The probability of
having a collision is thus roughly N * (N-1) / 2^161. Which ...
| Oct 20, 1:43 am 2006 |
| Junio C Hamano | Re: [PATCH] Don't use $author_name undefined when $from ...
It is not quite fair to talk as if I still have a choice.
Apparently a version of GNU diff that generates new format is
already in the wild (I've received such a patch which was where
this thread started). Whether I like your change or not, the
damage is already done and its output needs to be dealt with, so
that we do not break users.
Coding a workaround is not a big deal; the change is simple and
trivial. It's just I am somewhat unhappy, having to do a .1
release immediately after ...
| Oct 20, 12:52 am 2006 |
| Linus Torvalds | Re: [PATCH] Don't use $author_name undefined when $from ...
Yeah, I sent Junio a patch that _should_ make git accept the patches
already, so technically it was easy.
What irritates me personally about the new format for "-u" is that
- Maybe "-u" is new as far as _POSIX_ is concerned, but daamn, it's been
a standard format for a hell of a long time in real life, and this was
a totally gratuitous change.
- The new format is very much a new "special case". Now a totally empty
line means exactly the same as a line that is " \n", so ...
| Oct 20, 9:21 am 2006 |
| Liu Yubao | hooks--pre-commit: chomp() in cygwin perl does not strip "\r"
perl v5.8.7 built for cygwin-thread-multi-64int, its chomp() doesn't strip
trailing "\r" so that pre-commit reports "trailing whitespace" for every line.
ActiveState Perl v5.8.8 can strip "\r" and "\n" properly.
Changing
if (/\s$/) {
to
if (/[:blank:]$/) {
is also ok.
diff --git a/templates/hooks--pre-commit b/templates/hooks--pre-commit
index 723a9ef..6a55612
--- a/templates/hooks--pre-commit
+++ b/templates/hooks--pre-commit
@@ -54,7 +54,7 @@ perl -e '
}
if ...
| Oct 19, 11:14 pm 2006 |
| Marco Costalba | Re: [PATCH 2/2] Remove dead code after direct graph drawing
No problem, I should found them anyway and I don't need to manually
remove "qgit" prefix before to apply to repository.
-
| Oct 20, 4:49 am 2006 |
| Marco Costalba | Re: [PATCH 1/2] Simpler way to draw commit graph
The code to create pixmaps is older then the one to remove not visible pixmaps.
Yes, please.
Thanks
Marco
-
| Oct 20, 4:46 am 2006 |
| Linus Torvalds | Re: [ANNOUNCE] GIT 1.4.3
Not xterm, at least.
Not gnome-terminal either, for that matter.
I just tried.
LESS=FRS git diff
clears the screen and leaves the thing at the end.
LESS=FRSX git diff
works fine, but for people who _like_ the alternate screens (and I do,
once I really use a pager) it also disables the alternate screen.
It might depend on the termcap, of course. I'm running FC5.
Linus
-
| Oct 20, 5:31 pm 2006 |
| Linus Torvalds | Re: [ANNOUNCE] GIT 1.4.3
Not from me. I use "git diff" just to check that the tree is empty, and
the fact that it now throws me into an empty pager is irritating.
That said, "LESS=FRS" doesn't really help that much. It still clears the
screen. Using "LESS=FRSX" fixes that, but the alternate display sequence
is actually nice _if_ the pager is used.
Still, I think I'd prefer FRSX as the default.
Linus
-
| Oct 20, 5:14 pm 2006 |
| Junio C Hamano | Re: [ANNOUNCE] GIT 1.4.3
I am considering the following to address irritation some people
(including me, actually) are experiencing with this change when
viewing a small (or no) diff. Any objections?
diff --git a/pager.c b/pager.c
index dcb398d..8bd33a1 100644
--- a/pager.c
+++ b/pager.c
@@ -50,7 +50,7 @@ void setup_pager(void)
close(fd[0]);
close(fd[1]);
- setenv("LESS", "-RS", 0);
+ setenv("LESS", "FRS", 0);
run_pager(pager);
die("unable to execute pager '%s'", pager);
exit(255);
-
| Oct 20, 4:35 pm 2006 |
| Horst H. von Brand | Re: [ANNOUNCE] GIT 1.4.3
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
-
| Oct 20, 5:31 am 2006 |
| Al Viro | Re: [ANNOUNCE] GIT 1.4.3
Speaking of irritations... There is a major (and AFAICS fixable)
suckitude in git-cherry. Basically, what it does is
* use git-rev-list to find commits on our branches
* do git-diff-tree -p for each commit
* do git-patch-id on each delta
* compare sets.
For one thing, there are better ways to do set comparison than creating
a file for each element in one set and going through another checking
if corresponding files exist (join(1) and sort(1) or just use perl hashes).
That one is ...
| Oct 20, 7:12 pm 2006 |
| Nicolas Pitre | Re: [ANNOUNCE] GIT 1.4.3
I think this is an excellent idea.
Nicolas
-
| Oct 20, 5:47 pm 2006 |
| Petr Baudis | Re: [ANNOUNCE] GIT 1.4.3
Hmm, what terminal emulator do you use? The reasonable ones should
restore the original screen. At least xterm does, and I *think*
gnome-terminal does too (although I'm too lazy to boot up my notebook
and confirm).
(I personally consider alternate screen an abomination. It would be so
nice if the terminal emulators would just make it optional.)
--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo ...
| Oct 20, 5:22 pm 2006 |
| Uwe Zeisberger | Re: [PATCH] Use diff3 instead of merge in merge-recursive.
I thought about that, too. But my primary intention was to get rid of
'merge', because the Solaris boxes I use from time to time lack merge,
but have (GNU) diff3[1]. I already had a mental note to look into that.
If Linus is right that there are systems that have merge but lack diff3,
then a combined approach is maybe the best? That is, try diff3 and if
that is missing, try merge. (Or the other way round if you prefer.)
OK, I looked a bit deeper into rcs, and it seems to handle the BSD ...
| Oct 20, 2:11 pm 2006 |
| Johannes Schindelin | Re: [PATCH] Use diff3 instead of merge in merge-recursive.
Hi,
Yes. It was a long blues, and now instead of going to sleep I tested it.
In the long run, it was negligible, with a high local variability (which
stems from the fact that I had to run this test while the machine was
under high load, which it will be for another 48 hours minimum).
It makes sense that performance-wise, it will not make a great difference.
After all, the expensive operation is not the file-writing, but the
merging pass.
Ciao,
Dscho
-
| Oct 20, 5:06 pm 2006 |
| Jan Hudec | Re: Alternate revno proposal (Was: Re: VCS comparison table)
As they currently are you can't either. Because currently it is
guaranteed that the revnos will be the same in two branches with the
same current revision. But when the current revisions differ, the
numbers may as well.
Moreover currently they can change for the same branch over time, while
with the alternate proposal they would not, so you could reliably say
1) Partial sha-1 is still longer (starts being useful at 6 digits,
usually you need 8)
2) Decimal numbers are easier to remember ...
| Oct 19, 10:38 pm 2006 |
| James Henstridge | Re: VCS comparison table
If a revision has multiple parents, what does it diff against in this
case? Do you get one diff against each parent revision?
James.
-
| Oct 20, 3:45 am 2006 |
| Jeff King | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
If I understand correctly, if we see an unresolvable delta, we are just
making the assumption that its base has arrived (or will arrive) in the
same pack (without checking). This means that we could end up with a
corrupted repository if the sender gives us a bad pack. I believe that
git's network interaction has been designed specifically to avoid such
possibilities (e.g., verifying completeness and integrity of downloaded
objects).
-Peff
-
| Oct 20, 7:41 am 2006 |
| Christian MICHON | Re: VCS comparison table
funny. I actually read another post from Linus, and when I
"merge" with your post (understand: bisect), the following
comes out:
- git is the fastest scm around
- git has the smallest scm footprint
- git is also aimed at small(ish) projects
my personal proof of concept on the last point is that I'm a
IC design engineer who threw away other scm in favor of git
since git-1.4.2 and regret now the years wasted on _other_
scm. But your mileage may vary.
--
Christian
-
| Oct 20, 6:46 am 2006 |
| Jakub Narebski | Re: VCS comparison table
That's probably because Cogito still uses obsolete branches/
$ git clone git://git.kernel.org/pub/scm/git/git.git
clones _whole_ repository, all the branches and tags, and saves information
I should have said: bring working area to state given by some revision
(instead of "populate working area").
--
Jakub Narebski
Poland
-
| Oct 20, 7:12 am 2006 |
| James Henstridge | Re: VCS comparison table
My understanding of git is that this would be equivalent to the "bzr
branch" command. A checkout (heavy or lightweight) has the property
I suppose that'd be useful if you want a copy of all the branches at
Two points:
(1) if we are publishing branches, we wouldn't include working trees
-- they are not needed to pull or merge from such a branch.
(2) if we did have working trees, they'd be rooted at /repo/branch1
and /repo/branch2 -- not at /repo (since /repo is not a branch).
In case ...
| Oct 20, 7:59 am 2006 |
| Jakub Narebski | Re: VCS comparison table
> repository.
| Oct 20, 4:00 am 2006 |
| Sean | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
On Fri, 20 Oct 2006 10:03:16 -0400
Perhaps I missed something in the earlier mails about this feature.
As I understood it, the email sent has a combined diff that shows
the net effect of all the commits included in the bundle. (Whereas
the current Cogito version only shows a diffstat)
If the recipient of such a bundle is unable to extract the diff of
each separate commit included in the bundle then I can't see any
value in the feature at all. But showing a combined diff in the
email may ...
| Oct 20, 8:37 am 2006 |
| Johannes Schindelin | Re: VCS comparison table
Hi,
It does not. You can fully expect the universe to go down before that
happens.
The only reasonable worry is about SHA-1 being broken some time in future,
i.e. being able to construct a malign version of some source code _which
has the same hash_. There were plenty of discussions about that; Please
search the mailing list. (The consent was that those do not matter,
because an existing object will _never_ be overwritten by a fetch, so you
would not get that invalid object ...
| Oct 20, 1:38 am 2006 |
| Johannes Schindelin | Re: VCS comparison table
Hi,
I could be wrong, but I have the impression (even after actually testing
it) that "git diff d8a60" is equivalent to "git diff d8a60..HEAD", _not_
"git diff d8a60^..d8a60".
IIRC we had a "-p" flag to denote "parent" once upon a time, but that no
longer works...
"git-show" is definitely what you want.
Ciao,
Dscho
-
| Oct 20, 7:52 am 2006 |
| Aaron Bentley | Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
In Bazaar bundles, the text of the diff is an integral part of the data.
It is used to generate the text of all the files in the revision.
Bazaar bundles were designed to be used on mailing lists. So you can
review the changes from the diff, comment on them, and if it seems
It's my understanding that most changes discussed on lkml are provided
as a series of patches. Bazaar bundles are intended as a direct
replacement for patches in that ...
| Oct 20, 7:03 am 2006 |
| Matthieu Moy | Re: VCS comparison table
The plugin Vs core feature is not a technical problem. The code for a
plugin and for a core functionality will roughly be the same, but in a
different file.
There can be many reasons why you want to implement something as a
plugin:
* This is project-specific, upstream is not interested (for example,
bzr has a plugin to submit a merge request to a robot, it will
probably never come in the core).
* The feature is not matured enough, so you don't want to merge it in
upstream, but you ...
| Oct 20, 2:43 am 2006 |
| Lachlan Patrick | Re: VCS comparison table
I've been following the git-vs-bzr discussion, and I'd like to ask a
question (being new to both bzr and git). How does git disambiguate SHA1
hash collisions? I think git has an alternative way to name revisions
(can someone please explain it in more detail, I've seen <ref>~<n>
mentioned only in passing in this thread). It seems to me collisions are
a good argument in favour of having two independent naming schemes, so
that you're not solely relying on hashes being unique.
A strong argument ...
| Oct 20, 12:47 am 2006 |
| Jakub Narebski | Re: VCS comparison table
With Cogito (you can think of it either as alternate Git UI, or as SCM
built on top of Git) you would use
$ cg clone http://server/repo#branch
for example
$ cg clone git://git.kernel.org/pub/scm/git/git.git#next
to clone _single_ branch (in bzr terminology, "heavy checkout" of branch).
But you can also clone _whole_ repository, _all_ published branches with
$ cg clone git://git.kernel.org/pub/scm/git/git.git
With core Git it is the same, but we don't have the above ...
| Oct 20, 6:17 am 2006 |
| James Henstridge | Re: VCS comparison table
There are two forms of checkout: a normal checkout which contains the
complete history of the branch, and a lightweight checkout, which just
has a pointer back to the original location of the history.
In both cases, a "bzr commit" invocation will commit changes to the
remote location. In general, you only want to use a lightweight
checkout when there is a fast reliably connection to the branch (e.g.
if it is on the local file system, or local network).
Aaron would be talking about a normal ...
| Oct 20, 1:26 am 2006 |
| Jakub Narebski | Re: VCS comparison table
I stand corrected: git-diff refuses to show anything if provided
with only one commit, and commit has more than one parent. So it
does not reat first parent specially.
--
Jakub Narebski
Poland
-
| Oct 20, 6:26 am 2006 |
| J. Bruce Fields | Re: VCS comparison table
Well, I thought the discussion was about what meaning references have
after branches were modified or removed. In which case the interesting
situation is one where an object is gone but someone somewhere still
holds a reference (because the SHA1 was mentioned in a bug report or an
Could be.
Anyway, the important difference between the SHA1 references and small
integers is that there's no aliasing in the former case. Which is
important--I'd rather have a reference to nothing than a ...
| Oct 20, 8:33 am 2006 |
| Jakub Narebski | Re: VCS comparison table
If you want pretty name, you tag it. Tags are exchanged during
fetch/push operation. And you can have pretty names of revisions
> 752..753" will show the changes it introduced.
| Oct 20, 2:57 am 2006 |
| Petr Baudis | Re: VCS comparison table
Dear diary, on Sat, Oct 21, 2006 at 12:50:31AM CEST, I got a letter
It's not exactly convenient, but you can do
xpasky@machine[0:0]~/git$ GIT_ALTERNATE_OBJECT_DIRECTORIES=../cogito/.git/objects cg-diff -r `GIT_DIR=../cogito/.git cg-object-id -c HEAD`..HEAD
I don't personally think it's worth a special UI, but there're no
boundaries for initiative... :-)
--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
#!/bin/perl ...
| Oct 20, 3:58 pm 2006 |
| Andy Whitcroft | Re: VCS comparison table
Well if there is more than one parent, then there are more than one
diff. For instance this is a merge commit which I asked to 'see'.
This gets shown in the combined diff format, showing the results of the
conflict resolution.
diff --cc this
index fbbafbf,10c8337..43b7af0
--- a/this
+++ b/this
@@@ -1,3 -1,3 +1,4 @@@
1
+ 2a
+2b
3
If you want to know each individual diff in a more 'standard' form you
can ask about the parents specifically.
apw@pinky$ git diff HEAD^1..
diff ...
| Oct 20, 3:45 am 2006 |
| Jeff King | Re: VCS comparison table
In what sense? Yes, you can make a guess if you have stored the SHA1
that contained the launch codes. But the point is that that particular
SHA1 is no longer part of the repository. Keeping that SHA1 is no easier
than just keeping the launch codes in the first place.
-Peff
-
| Oct 20, 7:31 am 2006 |
| Horst H. von Brand | Re: VCS comparison table
So? It makes no sense to me to cater only to "successful projects"... most
Yes, but what matters here is the principle... if branches aren't equal, it
makes some things unnecessarily hard (i.e., forking, passing maintainership
over, ...). Sure, they aren't activities that should be actively
"Very rare" != "never". The "very rare" cases /will/ come back to bite you,
once you grow accustomed to "hasn't ever happened"
What makes a "published repository" special, as oposed to my ...
| Oct 20, 6:22 am 2006 |
| Aaron Bentley | Re: VCS comparison table
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Agreed. I think it's okay to require extra work to set the scm up to
It would surprise me if many SCMs that support atomic commit also
That's something I'd like for software development, too.
Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFFOEsO0F+nu1YWqI0RAo+6AJ9lzF0+O1I8rgkyCOdhsir1gjo0NQCfXEVV
EIsDmS+eR/7cHKQfmnPJRA4=
=g5jk
-----END PGP ...
| Oct 19, 9:05 pm 2006 |
| Petr Baudis | Re: VCS comparison table
Hi,
Dear diary, on Fri, Oct 20, 2006 at 10:38:48AM CEST, I got a letter
well, that's somewhat a bold statement, since when you have a way to
fabricate malicious objects, you probably can socially engineer to have
it distributed to a large portion of repositories if you try hard
enough. Or you hack kernel.org and replace the object. Who knows.
But the thing is that noone has come any closer to this kind of attack
at all. Currently known attacks are that you can relatively fast ...
| Oct 20, 3:13 am 2006 |
| Petr Baudis | Re: VCS comparison table
Dear diary, on Fri, Oct 20, 2006 at 09:47:16AM CEST, I got a letter
This is just a notion that lets you point to revisions relative to a
given id. <id>~<n> means n-th ancestor of the given commit.
--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)
-
| Oct 20, 3:16 am 2006 |
| Jakub Narebski | Re: VCS comparison table
If revision has multiple parents (is merge commit), git-diff
(which is used by git-show) does not show differences (unless you
give two revisions in git-diff case).
You can either use '-m' option to show differences from all its
parents, or '-c'/'--cc' to show combined diff ('--cc' shows more
compact diff).
--
Jakub Narebski
Poland
-
| Oct 20, 5:01 am 2006 |
| zindar | Re: VCS comparison table
In bzr there are two different kind of checkouts. One is a called a
lightweight checkout and that's really a "normal" checkout in the way
svn for example does it. In this mode, you have the branch remotely
and only the working tree locally. So it's just a checkout of the
branch head (of any other revision if using -r when doing the
checkout).
Then there are none lightweight checkouts, heavyweight checkouts.
These are the default type. A heavyweight checkout is in fact a full
branch ...
| Oct 20, 1:56 am 2006 |
| Linus Torvalds | Re: VCS comparison table
I don't know if that is what Carl's problem is, but yes, to somebody from
the git world, it's totally insane to have the _same_ commit have ten
different names just depending on which branch is was in.
In git-land, the name of a commit is the same in every branch.
Do you have something like
gitk --all
in your graphical viewers? That one shows _all_ the branches of a
repository, and how they relate to each other in git. How do you name your
commits in such a viewer, since every ...
| Oct 19, 10:05 pm 2006 |
| Jakub Narebski | Re: VCS comparison table
So the "lightweight checkout" is equivalent of "lazy clone" we have
much discussed on git mailing list about (without any resulting code,
unfortunately). The point of problem was how to do this fast, without
need for fast reliable connection to the repository it was cloned from.
For example if to leave fetched objects in some kind of cache, or even
in "lightweight checkout"/"lazy clone" repository database.
If repository we do "lightweight checkout"/"lazy clone" from is on
local file system ...
| Oct 20, 3:19 am 2006 |
| Matthieu Moy | Re: VCS comparison table
How does git chose which ancestor to use if this revision has more
than one in this case?
--
Matthieu
-
| Oct 20, 3:02 am 2006 |
| James Henstridge | Re: VCS comparison table
With the above layout, I would just type:
bzr branch http://server/repo/branch1
This command behaves identically whether the repository data is in
/repo or in /repo/branch1. Someone pulling from the branch doesn't
have to care what the repository structure is. Having a separate
namespace for branch names only really makes sense if the user needs
to care about it.
As for heirarchical names, there is nothing stopping you from using
deaper directory structures with Bazaar too. Bazaar ...
| Oct 20, 3:42 am 2006 |
| Jeff King | Re: VCS comparison table
I was accustomed to doing such things in CVS, but I find the git way
much more pleasant, since I don't have to do any arithmetic:
diff d8a60^..d8a60
(Yes, I am capable of performing subtraction in my head, but I find that
a "parent-of" operator matches my cognitive model better, especially
when you get into things like d8a60^2~3).
Does bzr have a similar shorthand for mentioning relative commits?
-Peff
-
| Oct 20, 7:12 am 2006 |
| Jakub Narebski | Re: VCS comparison table
By the way "diff d8a60" also works (unless d8a60 is merge commit, in
By the way, git has the following extended SHA1 syntax for <commit-ish>
(documented in git-rev-parse(1)):
* full SHA1 (40-chars hexadecimal string) or abbreviation unique for
repository
* symbolic ref name. E.g. 'master' typically means commit object referenced
by $GIT_DIR/refs/heads/master; 'v1.4.1' means commit object referenced
[indirectly] by $GIT_DIR/refs/tags/v1.4.1. You can say 'heads/master'
and ...
| Oct 20, 7:40 am 2006 |
| Jakub Narebski | Re: VCS comparison table
I have lost somewhere among many emails in this thread the email I
wanted to reply to, the one mentioning for the first time the lack of
parents ordering in GIT, but this one should do.
There are exactly _two_ places where Git treats first parent specially
(correct me if I'm wrong).
First, <commit-ish>^ is shortcut for <commit-ish>^1, i.e. for first
parent of commit. <commit-ish>~<n> is shortcut for <commit-ish>^^...^
(n-times '^'), which means that <commit-ish>~<n> is n-th parent in ...
| Oct 20, 4:50 am 2006 |
| Jakub Narebski | Re: VCS comparison table
Not exactly (my mistake in explaining it). "cg clone git://host/repo@branch"
clones only part of history DAG of commits reachable from given branch.
Still it is full repository. You can add branches to it later with
That is _very_ useful. And that is default option for Git. For
example with git.git repository I'm interested both in 'master'
branch (main line of development), and in 'next' branch (development
branch). For example I send some patches, based on 'master', they
get accepted but in ...
| Oct 20, 3:50 pm 2006 |
| Carl Worth | Re: VCS comparison table
Well, I'm glad to know we each feel like we are communicating at
The entire discussion is about how to name things in a distributed
system. The premise that Linus has put forth in a very compelling way,
is that attempting to use sequential numbers for names in a
distributed system will break down. The breakdown could be that the
names are not stable, or that the system is used in a centralized way
to avoid the instability of the names.
Now, that causality might not accurately describe the ...
| Oct 20, 2:48 pm 2006 |
| Jakub Narebski | Re: VCS comparison table
And here we have a feature which is as far as I see unique to git,
namely to have persistent branches with _separate namespace_. It means
that we can have hierarchical branch names (including names like
"remotes/<remotename>/<branch of remote>", or "jc/diff"), and we don't
have to guess where repository name ends and branch name begins.
The idea of "branches (and tags) as directories" was if I understand
it correctly introduced by Subversion, and from what can be seen from
troubles with ...
| Oct 20, 2:51 am 2006 |
| Petr Baudis | Re: VCS comparison table
Dear diary, on Fri, Oct 20, 2006 at 03:17:26PM CEST, I got a letter
Nope, cg clone will in this case clone the master branch (or whatever
the remote HEAD points at). cg clone -a is planned but not implemented
You don't need to, you can switch your working tree between various
branches. I think Linus said he does that (or was it Junio?), and I do that
as well, as well as many others.
A good question would be "when to create another branch and when to
clone the repository". And I don't think ...
| Oct 20, 6:36 am 2006 |
| Jakub Narebski | Re: VCS comparison table
Ooops, I mixed git-diff-tree (which behaves as mentioned above) with
git-diff, which according to documentation compares with working tree
(and not HEAD) if only one <tree-ish> is given.
git-diff(1):
? When one <tree-ish> is given, the working tree and the named tree are
compared, using git-diff-index. The option --cached can be given to com-
pare the index file and the named tree.
git-diff-tree(1):
If there is only one <tree-ish> given, the commit is ...
| Oct 20, 8:34 am 2006 |
| Jeff King | Re: VCS comparison table
Git tries very hard to make sure you don't have a reference to something
that doesn't exist. But yes, you could have a reference to the SHA1 in
another, non-git source, and try to guess the data from it. However,
there's a bit of a two-step procedure, since the SHA1 will likely be of
the commit. You have to guess the commit author, date, message, and
the contents of the rest of the tree to make a correct guess.
In practice I think most "launch code" scenarios are less about
guessable ...
| Oct 20, 8:43 am 2006 |
| Junio C Hamano | Re: On blame/pickaxe
I do not personally worry about people confusing -M/-C to
pickaxe with -M/-C given to diff (to pickaxe, use of diff is
purely an internal implementation issue), and reused -M and -C
to mean quite different things. -M is to detect line movement
inside a file (it is not strictly limited to "line movement",
though. It _is_ about "copies and moves within the same file").
On the other hand, -C (and its stronger form -C -C) is to detect
copies and moves across file boundaries (but wholesale ...
| Oct 20, 8:20 pm 2006 |
| previous day | today | next day |
|---|---|---|
| October 19, 2006 | October 20, 2006 | October 19, 2006 |
