git mailing list

FromSubjectsort iconDate
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 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 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 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 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 daytodaynext day
October 19, 2006October 20, 2006October 19, 2006