Re: git and bzr

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Nicholas Allen <allen@...>
Cc: Joseph Wakeling <joseph.wakeling@...>, <git@...>, <bazaar-ng@...>
Date: Thursday, November 30, 2006 - 12:45 pm

On Thu, 30 Nov 2006, Nicholas Allen wrote:

Right now (and in the near future), nope. "git blame" will track the 
changes (so the pure movement wasn't just an addition of new code, but 
you'll see it track it all the way down to the original), but "git merge" 
is still file-based.

In other words, "git merge" does uses a data similarity analysis that 
could be used for smaller chunks than a whole file, but at least for now 
it does it on a file granularity only (and then passes it off to the 
standard RCS three-way merge on a file-by-file basis).

That said, if the movement happens _within_ a file, then just about any 
SCM could do what you ask for, by just using something smarter than the 
standard 3-way merge. So that part isn't even about tracking data across 
files - it's just about a per-file merge strategy.

The "track data, not files" thing becomes more interesting when you factor 
out a file into two or more files, and can continue to merge across such a 
code re-filing event. Git can do it for "annotate", but doesn't do it for 
anything else.


Indeed, and it's one of the potential future goals that was discussed very 
early in the git design phase. The point of _not_ doing file ID tracking 
is exactly that you can actually do better than that by just tracking the 
data.

So some day, we may do it. And not just within one file, but even between 
files. Because file renames really is just a very specific special case of 
data movement, and I don't think it's even the most common case.

That said, there are several reasons why you might not actually _ever_ 
want it in practice, and why I say "potential future goal" and "we may do 
it". I think this is going to be both a matter of not just writing the 
code (which we haven't done), but also deciding if it's really worth it.

Because merges are things where you may not want too much smarts:

 - Quite often, a failed merge that needs manual fixup may even be 
   _preferable_ to a successful merge that did the merge "technically 
   correctly", but in an unexpected way.

 - There's a _big_ difference between "merging code" and "examining code". 
   It makes much more sense to try to track where code came from and what 
   the "deep history" was when you examine code, because the reason you're 
   doing so is generally exactly because you're looking for what went 
   wrong, and who to blame.

   When going "merging", the history of the code is arguably a lot less 
   important. What is the most important part is that the two branches you 
   merge have been (hopefully) verified in their _current_ state. The 
   history may be full of bugs, and they may have been fixed differently, 
   and even trying to be really clever may not actually be a good idea at 
   all.

   Code may have moved or may have been copied, but what is much more 
   important than the original code and where it came from is the state it 
   was in _after_ the move, because that's the tested working state, and 
   in many ways the history of how it came to be really shouldn't matter 
   as much at all.

In other words, "annotate" and "merge" have almost entirely opposite 
interests. An annotation is supposed to find the history in order to maybe 
help find bugs, while a merge is supposed to use the _current_ state, and 
very arguably, if the two current states don't match _so_ obviously that 
there is no question about what you should do, then the merge should make 
that very very very clear to the user.

So my personal opinion has always been that a merge should be extremely 
simpleminded. I think all teh VCS people who concentrate on smart merging 
absolutely have their heads up their arses, and do exactly the wrong 
thing. A merge should not do anything "clever" at all. It should be just 
_barely_ smart enough to do the obvious thing, and even then we all know 
that it will still occasionally do the wrong thing.

So I actually think that a bog-standard and totally stupid three-way merge 
is simply not far from the right thing to do. And the git "recursive" 
thing basically repeats that stupid merge (a) in time (ie the criss-cross 
merge thing causes a recursive three-way merge to take place) and (b) in 
the metadata space (ie you can see the rename following basically as just 
a "3-way merge in filenames").

And yes, this is probably some mental deficiency and hang-up, but I think 
that's sufficient, and that where the real "clever" stuff should be is to 
then help people resolve conflicts (and maybe also help you find 
mis-merges even with the totally stupid and simple merge). Because 
conflicts _will_ happen, regardless of your merge strategy, and you do 
need people to look at them, but you can make it _easier_ for people to 
say "ok, that's obviously the right merge".

So me personally, I'd rather have the "real merge" be what git already 
does, and then have something like a graphical "resolution helper" 
application that tries to resolve the remaining things with user help. And 
that "resolution helper" is where I'd put all the magic code movement 
logic, not in the merge itself.

So you could look at a failed hunk, and press a "show me a best guess" 
button, and at that point the thing would say "that code might fit here, 
does that look sane to you? <Ok>, <Next guess>, <Cancel>".

THAT is what a good VCS should do, in my opinion. Not do "smart merges".

Btw, git doesn't do the above kind of smart graphical thing, but git 
_does_ do something very much in that direction. Unlike a lot of things, 
git doesn't just leave the "conflict marker" turds in the working tree. 
No, the index will contain the three-way merge base and both of the actual 
files you were trying to merge, and a "git diff" will actually show you a 
three-way diff of the working tree (and you can say "git diff --ours" to 
see the diff just against our old head, and "--theirs" to see a regular 
two-way diff against the _other_ side that you tried to merge).

So git already very much embodies this concept of "don't be overly smart 
when merging, but try to help the user out when resolving the merge". It 
may not be pretty GUI etc, and it mostly helps with regular bog-standard 
data conflicts, but boy is it pleasant to use for those once you get used 
to it.

So we get NONE of those horrible "you just get conflict turds, you figure 
it out" things. It gives you the turds (because people, including me, are 
used to them, and you want _something_ in the working tree that shows both 
versions at the same time, of course), but then you can edit them to your 
hearts content, and even _after_ you've edited them, you can do the above 
three-way (or two-way against either branch) diffs, and it will show what 
you edited and its relationship to the two branches you merged.

THAT is what merging is all about. Not smart merges. Stupid merges with 
good tools to help you do the right thing when the right thing isn't _so_ 
obvious that you can just leave it to the machine.

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

Messages in current thread:
Re: VCS comparison table, Jakub Narebski, (Sat Oct 14, 12:40 pm)
Re: VCS comparison table, Aaron Bentley, (Mon Oct 16, 6:26 pm)
Re: VCS comparison table, Johannes Schindelin, (Mon Oct 16, 7:45 pm)
Re: VCS comparison table, Robert Collins, (Tue Oct 17, 5:33 am)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 1:08 am)
Re: VCS comparison table, Sean, (Tue Oct 17, 6:23 am)
Re: VCS comparison table, Junio C Hamano, (Tue Oct 17, 2:23 am)
Re: VCS comparison table, J. Bruce Fields, (Tue Oct 17, 2:52 pm)
Re: VCS comparison table, Shawn Pearce, (Tue Oct 17, 1:31 am)
Re: VCS comparison table, Carl Worth, (Tue Oct 17, 1:25 am)
Re: VCS comparison table, Petr Baudis, (Mon Oct 16, 10:40 pm)
Re: VCS comparison table, Linus Torvalds, (Mon Oct 16, 7:35 pm)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 12:24 am)
Re: VCS comparison table, Linus Torvalds, (Tue Oct 17, 11:03 am)
Re: VCS comparison table, Sean, (Tue Oct 17, 6:23 am)
Re: VCS comparison table, , (Fri Oct 20, 4:56 am)
Re: VCS comparison table, James Henstridge, (Fri Oct 20, 4:26 am)
Re: VCS comparison table, Jakub Narebski, (Fri Oct 20, 6:19 am)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 3:51 pm)
Re: VCS comparison table, Jan Hudec, (Sat Oct 21, 2:58 pm)
Re: VCS comparison table, Sean, (Sat Oct 21, 3:02 pm)
Re: VCS comparison table, Johannes Schindelin, (Tue Oct 17, 6:30 am)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 9:48 am)
Re: VCS comparison table, Matthias Kestenholz, (Tue Oct 17, 6:45 am)
Re: VCS comparison table, Sean, (Tue Oct 17, 6:35 am)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 4:30 am)
Re: VCS comparison table, Matthieu Moy, (Tue Oct 17, 7:19 am)
Re: VCS comparison table, Petr Baudis, (Tue Oct 17, 9:46 pm)
Re: VCS comparison table, Olivier Galibert, (Tue Oct 17, 10:19 am)
Re: VCS comparison table, Matthieu Moy, (Tue Oct 17, 11:37 am)
Re: VCS comparison table, Andreas Ericsson, (Tue Oct 17, 8:00 am)
Re: VCS comparison table, Matthieu Moy, (Tue Oct 17, 9:27 am)
Re: VCS comparison table, Andreas Ericsson, (Tue Oct 17, 10:01 am)
Re: VCS comparison table, Matthieu Moy, (Tue Oct 17, 10:24 am)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 9:55 am)
Re: VCS comparison table, Jeff Licquia, (Wed Oct 18, 2:03 pm)
Re: VCS comparison table, Matthieu Moy, (Tue Oct 17, 10:08 am)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 10:41 am)
Re: VCS comparison table, Petr Baudis, (Tue Oct 17, 8:00 pm)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 8:30 pm)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 9:28 pm)
Re: VCS comparison table, Carl Worth, (Tue Oct 17, 9:44 pm)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 11:27 pm)
Re: VCS comparison table, Jakub Narebski, (Wed Oct 18, 5:20 am)
Re: VCS comparison table, Aaron Bentley, (Wed Oct 18, 12:31 pm)
Re: VCS comparison table, Jan Hudec, (Sat Oct 21, 11:56 am)
Re: VCS comparison table, Jakub Narebski, (Sat Oct 21, 12:13 pm)
Re: VCS comparison table, Petr Baudis, (Tue Oct 17, 8:39 pm)
Re: VCS comparison table, , (Wed Oct 18, 5:28 am)
Re: VCS comparison table, Petr Baudis, (Wed Oct 18, 7:08 am)
Re: VCS comparison table, , (Wed Oct 18, 9:09 am)
Re: VCS comparison table, Jakub Narebski, (Wed Oct 18, 7:17 am)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 7:45 am)
Re: VCS comparison table, Matthieu Moy, (Tue Oct 17, 9:33 am)
Re: VCS comparison table, Sean, (Tue Oct 17, 8:07 am)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 8:02 am)
Re: VCS comparison table, Sean, (Tue Oct 17, 7:38 am)
Re: VCS comparison table, Matthieu Moy, (Tue Oct 17, 8:03 am)
Re: VCS comparison table, Petr Baudis, (Tue Oct 17, 9:11 pm)
Re: VCS comparison table, Matthieu Moy, (Wed Oct 18, 2:44 am)
Re: VCS comparison table, Shawn Pearce, (Wed Oct 18, 3:16 am)
Re: VCS comparison table, Petr Baudis, (Tue Oct 17, 8:25 pm)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 8:38 pm)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 8:48 pm)
Re: VCS comparison table, Petr Baudis, (Tue Oct 17, 8:42 pm)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 8:50 pm)
Re: VCS comparison table, Petr Baudis, (Tue Oct 17, 8:57 pm)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 9:05 pm)
Re: VCS comparison table, Sean, (Tue Oct 17, 8:57 am)
Re: VCS comparison table, Matthieu Moy, (Tue Oct 17, 9:44 am)
Re: VCS comparison table, Sean, (Tue Oct 17, 10:01 am)
Re: VCS comparison table, Matthieu Moy, (Tue Oct 17, 10:19 am)
Re: VCS comparison table, Sean, (Tue Oct 17, 11:06 am)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 8:56 am)
Re: VCS comparison table, Andreas Ericsson, (Tue Oct 17, 3:50 am)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 10:05 am)
Re: VCS comparison table, Andreas Ericsson, (Tue Oct 17, 11:05 am)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 3:44 pm)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 7:39 pm)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 8:24 pm)
Re: VCS comparison table, Petr Baudis, (Tue Oct 17, 7:28 pm)
Re: VCS comparison table, Matthieu Moy, (Tue Oct 17, 11:32 am)
Re: VCS comparison table, Sean, (Tue Oct 17, 10:34 am)
Re: VCS comparison table, Luben Tuikov, (Mon Oct 16, 8:29 pm)
Re: VCS comparison table, Jakub Narebski, (Mon Oct 16, 7:55 pm)
Re: VCS comparison table, Linus Torvalds, (Mon Oct 16, 8:08 pm)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 12:31 am)
Re: VCS comparison table, Johannes Schindelin, (Mon Oct 16, 8:04 pm)
Re: VCS comparison table, Linus Torvalds, (Mon Oct 16, 8:23 pm)
Re: VCS comparison table, Christian MICHON, (Tue Oct 17, 3:26 am)
Re: VCS comparison table, Nguyen Thai Ngoc Duy, (Mon Oct 16, 9:17 pm)
Re: VCS comparison table, Johannes Schindelin, (Mon Oct 16, 8:36 pm)
Re: VCS comparison table, Jakub Narebski, (Mon Oct 16, 7:19 pm)
Re: VCS comparison table, Robert Collins, (Tue Oct 17, 5:37 am)
Re: VCS comparison table, Sean, (Tue Oct 17, 6:01 am)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 12:56 am)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 5:20 am)
Re: VCS comparison table, Andreas Ericsson, (Tue Oct 17, 5:59 am)
Re: VCS comparison table, Robert Collins, (Tue Oct 17, 5:40 am)
Re: VCS comparison table, Linus Torvalds, (Tue Oct 17, 12:41 pm)
Re: VCS comparison table, Robert Collins, (Tue Oct 17, 6:27 pm)
Re: VCS comparison table, Sean, (Tue Oct 17, 7:18 pm)
Re: VCS comparison table, Andreas Ericsson, (Tue Oct 17, 6:08 am)
Re: VCS comparison table, Robert Collins, (Wed Oct 18, 12:55 am)
Re: VCS comparison table, Linus Torvalds, (Wed Oct 18, 11:31 am)
Re: VCS comparison table, Jakub Narebski, (Wed Oct 18, 11:50 am)
Re: VCS comparison table, Linus Torvalds, (Wed Oct 18, 12:22 pm)
Re: VCS comparison table, Andreas Ericsson, (Wed Oct 18, 4:53 am)
Re: VCS comparison table, Petr Baudis, (Wed Oct 18, 7:15 am)
Re: VCS comparison table, Matthieu Moy, (Tue Oct 17, 6:47 am)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 4:15 am)
Re: VCS comparison table, Andreas Ericsson, (Tue Oct 17, 4:16 am)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 4:01 pm)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 5:01 pm)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 7:35 pm)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 5:27 pm)
Re: VCS comparison table, Linus Torvalds, (Tue Oct 17, 6:03 pm)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 6:53 pm)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 7:24 pm)
Re: VCS comparison table, Linus Torvalds, (Tue Oct 17, 7:50 pm)
Re: VCS comparison table, Linus Torvalds, (Tue Oct 17, 7:09 pm)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 8:23 pm)
Re: VCS comparison table, Ryan Anderson, (Tue Oct 17, 11:25 pm)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 8:46 pm)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 9:00 pm)
Re: VCS comparison table, Linus Torvalds, (Tue Oct 17, 11:35 pm)
Re: VCS comparison table, Aaron Bentley, (Wed Oct 18, 11:10 pm)
Re: VCS comparison table , Horst H. von Brand, (Fri Oct 20, 9:22 am)
Re: VCS comparison table, Christian MICHON, (Fri Oct 20, 9:46 am)
Re: VCS comparison table, , (Thu Oct 19, 3:02 am)
Re: VCS comparison table, Petr Baudis, (Thu Oct 19, 7:37 am)
Re: VCS comparison table, Matthew D. Fuller, (Thu Oct 19, 11:17 am)
Re: VCS comparison table, Christian MICHON, (Thu Oct 19, 4:49 am)
Re: VCS comparison table, Andreas Ericsson, (Thu Oct 19, 4:58 am)
Re: VCS comparison table, Ramon Diaz-Uriarte, (Thu Oct 19, 11:45 am)
Re: VCS comparison table, Matthieu Moy, (Thu Oct 19, 5:10 am)
Re: VCS comparison table, Tim Webster, (Thu Oct 19, 10:57 am)
Re: VCS comparison table, Matthieu Moy, (Thu Oct 19, 12:14 pm)
Re: VCS comparison table, Tim Webster, (Thu Oct 19, 11:40 pm)
Re: VCS comparison table, Aaron Bentley, (Thu Oct 19, 11:30 am)
Re: VCS comparison table, Tim Webster, (Thu Oct 19, 11:14 pm)
Re: VCS comparison table, Aaron Bentley, (Fri Oct 20, 12:05 am)
Re: VCS comparison table, Jan Hudec, (Sat Oct 21, 8:30 am)
Re: VCS comparison table, Jan Hudec, (Thu Oct 19, 1:33 am)
Re: VCS comparison table, Carl Worth, (Thu Oct 19, 1:21 am)
Re: VCS comparison table, Linus Torvalds, (Thu Oct 19, 11:25 am)
Re: VCS comparison table, Matthew D. Fuller, (Thu Oct 19, 12:13 pm)
Re: VCS comparison table, Linus Torvalds, (Thu Oct 19, 12:49 pm)
Re: VCS comparison table, Linus Torvalds, (Thu Oct 19, 2:30 pm)
Re: VCS comparison table, Junio C Hamano, (Thu Oct 19, 3:16 pm)
Re: VCS comparison table, Matthieu Moy, (Thu Oct 19, 2:54 pm)
Re: VCS comparison table, Ryan Anderson, (Thu Oct 19, 7:28 pm)
Re: VCS comparison table, Linus Torvalds, (Thu Oct 19, 4:47 pm)
Re: VCS comparison table, Junio C Hamano, (Sat Oct 21, 1:49 am)
Re: VCS comparison table, Aaron Bentley, (Thu Oct 19, 10:58 am)
Re: VCS comparison table, Carl Worth, (Thu Oct 19, 1:01 pm)
Re: VCS comparison table, J. Bruce Fields, (Thu Oct 19, 1:14 pm)
Re: VCS comparison table, Jeff King, (Fri Oct 20, 10:31 am)
Re: VCS comparison table, J. Bruce Fields, (Fri Oct 20, 11:33 am)
Re: VCS comparison table, Jeff King, (Fri Oct 20, 11:43 am)
Re: VCS comparison table, Carl Worth, (Thu Oct 19, 12:59 pm)
Re: VCS comparison table, Aaron Bentley, (Thu Oct 19, 7:01 pm)
Re: VCS comparison table, Carl Worth, (Thu Oct 19, 7:42 pm)
Re: VCS comparison table, James Henstridge, (Thu Oct 19, 10:53 pm)
Re: VCS comparison table, Jakub Narebski, (Fri Oct 20, 5:51 am)
Re: VCS comparison table, James Henstridge, (Fri Oct 20, 6:42 am)
Re: VCS comparison table, Jakub Narebski, (Fri Oct 20, 9:17 am)
Re: VCS comparison table, James Henstridge, (Fri Oct 20, 10:59 am)
Re: VCS comparison table, Jakub Narebski, (Fri Oct 20, 6:50 pm)
Re: VCS comparison table, Petr Baudis, (Fri Oct 20, 6:58 pm)
Re: VCS comparison table, Petr Baudis, (Fri Oct 20, 9:36 am)
Re: VCS comparison table, Jakub Narebski, (Fri Oct 20, 10:12 am)
Re: VCS comparison table, Aaron Bentley, (Thu Oct 19, 9:06 pm)
Re: VCS comparison table, Carl Worth, (Fri Oct 20, 5:48 pm)
Re: VCS comparison table, Aaron Bentley, (Sat Oct 21, 4:05 pm)
Re: VCS comparison table, Jan Hudec, (Sun Oct 22, 3:45 am)
Re: VCS comparison table, Jakub Narebski, (Sun Oct 22, 5:05 am)
Re: VCS comparison table, , (Sun Oct 22, 5:56 am)
Re: VCS comparison table, Carl Worth, (Sun Oct 22, 10:25 am)
Re: VCS comparison table, Matthew D. Fuller, (Sun Oct 22, 2:53 pm)
Re: VCS comparison table, Linus Torvalds, (Mon Oct 23, 1:29 pm)
Re: VCS comparison table, Matthew D. Fuller, (Mon Oct 23, 6:21 pm)
Re: VCS comparison table, Matthieu Moy, (Tue Oct 24, 5:51 am)
Re: VCS comparison table, Linus Torvalds, (Mon Oct 23, 6:44 pm)
Re: VCS comparison table, Matthew D. Fuller, (Mon Oct 23, 8:26 pm)
Re: VCS comparison table, David Lang, (Tue Oct 24, 11:58 am)
Re: VCS comparison table, Matthew D. Fuller, (Tue Oct 24, 12:34 pm)
Re: VCS comparison table, David Lang, (Tue Oct 24, 2:03 pm)
Re: VCS comparison table, Matthew D. Fuller, (Tue Oct 24, 8:27 pm)
Re: VCS comparison table, David Lang, (Wed Oct 25, 6:40 pm)
Re: VCS comparison table, Jan Hudec, (Mon Oct 30, 5:46 pm)
Re: VCS comparison table, Matthew D. Fuller, (Wed Oct 25, 7:53 pm)
Re: VCS comparison table, Andreas Ericsson, (Thu Oct 26, 6:13 am)
Re: VCS comparison table, Aaron Bentley, (Thu Oct 26, 9:47 am)
Re: VCS comparison table, Matthew D. Fuller, (Thu Oct 26, 8:12 am)
Re: VCS comparison table, , (Thu Oct 26, 6:45 am)
Re: VCS comparison table, David Lang, (Mon Oct 23, 6:28 pm)
Re: VCS comparison table, David Lang, (Mon Oct 23, 12:57 pm)
Re: VCS comparison table, Jakub Narebski, (Sun Oct 22, 3:27 pm)
Re: VCS comparison table, , (Sun Oct 22, 10:48 am)
Re: VCS comparison table, Jakub Narebski, (Sun Oct 22, 11:04 am)
Re: VCS comparison table, Jakub Narebski, (Sun Oct 22, 10:55 am)
Re: VCS comparison table, Jakub Narebski, (Sun Oct 22, 9:23 am)
Re: VCS comparison table, Sean, (Sat Oct 21, 4:53 pm)
Re: VCS comparison table, Linus Torvalds, (Sat Oct 21, 5:10 pm)
Re: VCS comparison table, Jakub Narebski, (Sat Oct 21, 4:48 pm)
Re: VCS comparison table, Aaron Bentley, (Sat Oct 21, 7:39 pm)
Re: VCS comparison table, Jakub Narebski, (Sat Oct 21, 8:14 pm)
Re: VCS comparison table, Carl Worth, (Sat Oct 21, 8:04 pm)
Re: VCS comparison table, Edgar Toernig, (Sat Oct 21, 6:52 pm)
Re: VCS comparison table, Matthew D. Fuller, (Sat Oct 21, 9:01 am)
Re: VCS comparison table, Andreas Ericsson, (Wed Oct 25, 5:35 am)
Re: VCS comparison table, Matthieu Moy, (Wed Oct 25, 5:57 am)
Re: VCS comparison table, Jakub Narebski, (Wed Oct 25, 5:46 am)
Re: VCS comparison table, James Henstridge, (Wed Oct 25, 6:08 am)
Re: VCS comparison table, Carl Worth, (Wed Oct 25, 11:54 am)
Re: VCS comparison table, James Henstridge, (Thu Oct 26, 4:52 am)
Re: VCS comparison table, Andreas Ericsson, (Thu Oct 26, 5:50 am)
Re: VCS comparison table, Junio C Hamano, (Thu Oct 26, 5:33 am)
Re: VCS comparison table, James Henstridge, (Thu Oct 26, 5:57 am)
Re: VCS comparison table, Jeff King, (Thu Oct 26, 6:10 am)
Re: VCS comparison table, Vincent Ladeuil, (Thu Oct 26, 6:52 am)
Re: VCS comparison table, Linus Torvalds, (Thu Oct 26, 11:05 am)
git and bzr, Joseph Wakeling, (Mon Nov 27, 8:01 pm)
Re: git and bzr, Nicholas Allen, (Thu Nov 30, 8:36 am)
Re: git and bzr, Linus Torvalds, (Thu Nov 30, 12:45 pm)
Re: git and bzr, Johannes Schindelin, (Thu Nov 30, 8:47 am)
Re: git and bzr, , (Tue Nov 28, 8:10 am)
Re: git and bzr, Linus Torvalds, (Mon Nov 27, 10:57 pm)
Re: git and bzr, Joseph Wakeling, (Tue Nov 28, 10:23 pm)
Re: git and bzr, Linus Torvalds, (Tue Nov 28, 11:51 pm)
git blame [was: git and bzr], Joseph Wakeling, (Wed Nov 29, 8:17 am)
Re: git blame [was: git and bzr], Linus Torvalds, (Wed Nov 29, 12:39 pm)
Re: git blame [was: git and bzr], Joseph Wakeling, (Thu Nov 30, 2:24 pm)
Re: git blame [was: git and bzr], Linus Torvalds, (Thu Nov 30, 2:44 pm)
Re: git blame [was: git and bzr], Carl Worth, (Thu Nov 30, 3:55 pm)
Re: git blame [was: git and bzr], Johannes Schindelin, (Thu Nov 30, 6:17 pm)
Re: git blame, Junio C Hamano, (Thu Nov 30, 6:38 pm)
Re: git blame, Johannes Schindelin, (Thu Nov 30, 6:53 pm)
Re: git blame [was: git and bzr], J. Bruce Fields, (Thu Nov 30, 6:24 pm)
Re: git and bzr, Sean, (Mon Nov 27, 8:40 pm)
Re: VCS comparison table, Vincent Ladeuil, (Thu Oct 26, 12:04 pm)
Re: VCS comparison table, Linus Torvalds, (Thu Oct 26, 12:21 pm)
Re: VCS comparison table, Jeff King, (Thu Oct 26, 7:13 am)
Re: VCS comparison table, Jeff King, (Thu Oct 26, 7:15 am)
Re: VCS comparison table, Carl Worth, (Sat Oct 21, 4:47 pm)
Re: VCS comparison table, David Clymer, (Sun Oct 22, 3:36 pm)
Re: VCS comparison table, Matthew D. Fuller, (Sun Oct 22, 8:46 am)
Re: VCS comparison table, Jeff Licquia, (Sat Oct 21, 7:07 pm)
Re: VCS comparison table, Sean, (Sat Oct 21, 7:25 pm)
Re: VCS comparison table, Jakub Narebski, (Sat Oct 21, 4:55 pm)
Re: VCS comparison table, Jakub Narebski, (Sat Oct 21, 10:08 am)
Re: VCS comparison table, Matthew D. Fuller, (Sat Oct 21, 2:11 pm)
Re: VCS comparison table, Jakub Narebski, (Sat Oct 21, 3:41 pm)
Re: VCS comparison table, David Clymer, (Sun Oct 22, 3:18 pm)
Re: VCS comparison table, Jakub Narebski, (Sun Oct 22, 4:06 pm)
Re: VCS comparison table, David Clymer, (Mon Oct 23, 7:56 am)
Re: VCS comparison table, Jakub Narebski, (Mon Oct 23, 8:54 am)
Re: VCS comparison table, David Clymer, (Mon Oct 23, 11:24 pm)
Re: VCS comparison table, James Henstridge, (Mon Oct 23, 11:01 am)
Re: VCS comparison table, Aaron Bentley, (Mon Oct 23, 1:18 pm)
Re: VCS comparison table, Jeff King, (Mon Oct 23, 4:06 pm)
Re: VCS comparison table, Jakub Narebski, (Mon Oct 23, 4:29 pm)
Re: VCS comparison table, Jakub Narebski, (Mon Oct 23, 1:53 pm)
Re: VCS comparison table, Linus Torvalds, (Mon Oct 23, 2:04 pm)
Re: VCS comparison table, Jakub Narebski, (Mon Oct 23, 2:21 pm)
Re: VCS comparison table, Linus Torvalds, (Mon Oct 23, 2:34 pm)
Re: VCS comparison table, Jelmer Vernooij, (Mon Oct 23, 2:26 pm)
Re: VCS comparison table, Jakub Narebski, (Mon Oct 23, 2:31 pm)
Re: VCS comparison table, Linus Torvalds, (Mon Oct 23, 2:45 pm)
Re: VCS comparison table, Jelmer Vernooij, (Mon Oct 23, 2:56 pm)
Re: VCS comparison table, Linus Torvalds, (Mon Oct 23, 3:18 pm)
Re: VCS comparison table, Jakub Narebski, (Mon Oct 23, 3:12 pm)
Re: VCS comparison table, Shawn Pearce, (Mon Oct 23, 3:02 pm)
Re: VCS comparison table, Jelmer Vernooij, (Mon Oct 23, 2:44 pm)
Re: VCS comparison table, Jakub Narebski, (Sun Oct 22, 3:57 pm)
Re: VCS comparison table, Jeff King, (Sat Oct 21, 3:19 pm)
Re: VCS comparison table, Matthew D. Fuller, (Sat Oct 21, 5:46 pm)
Re: VCS comparison table, Jakub Narebski, (Sat Oct 21, 6:25 pm)
Re: VCS comparison table, Jeff Licquia, (Sat Oct 21, 7:42 pm)
Re: VCS comparison table, Carl Worth, (Sat Oct 21, 7:49 pm)
Re: VCS comparison table, Andreas Ericsson, (Wed Oct 25, 5:52 am)
Re: VCS comparison table, Petr Baudis, (Sun Oct 22, 12:02 pm)
Re: VCS comparison table, Jeff Licquia, (Sat Oct 21, 8:07 pm)
Re: VCS comparison table, Linus Torvalds, (Sat Oct 21, 8:47 pm)
Re: VCS comparison table, Sean, (Sat Oct 21, 6:06 pm)
Re: VCS comparison table, Jakub Narebski, (Sat Oct 21, 3:30 pm)
Re: VCS comparison table, Linus Torvalds, (Sat Oct 21, 3:55 pm)
Re: VCS comparison table, Jakub Narebski, (Sat Oct 21, 4:19 pm)
Re: VCS comparison table, Jan Hudec, (Sat Oct 21, 3:47 pm)
Re: VCS comparison table, , (Sat Oct 21, 12:31 pm)
Re: VCS comparison table, Jakub Narebski, (Sat Oct 21, 12:59 pm)
Re: VCS comparison table, Jakub Narebski, (Sat Oct 21, 1:41 pm)
Re: VCS comparison table, Jeff King, (Fri Oct 20, 10:12 am)
Re: VCS comparison table, Aaron Bentley, (Sat Oct 21, 1:57 pm)
Re: VCS comparison table, Jakub Narebski, (Sat Oct 21, 2:20 pm)
Re: VCS comparison table, Matthieu Moy, (Sun Oct 22, 10:27 am)
Re: VCS comparison table, Jakub Narebski, (Fri Oct 20, 10:40 am)
Re: VCS comparison table, Johannes Schindelin, (Fri Oct 20, 10:52 am)
Re: VCS comparison table, Jakub Narebski, (Fri Oct 20, 11:34 am)
Re: VCS comparison table, Jakub Narebski, (Fri Oct 20, 7:00 am)
Re: VCS comparison table, Jakub Narebski, (Fri Oct 20, 5:57 am)
Re: VCS comparison table, James Henstridge, (Fri Oct 20, 6:45 am)
Re: VCS comparison table, Jakub Narebski, (Fri Oct 20, 8:01 am)
Re: VCS comparison table, Matthieu Moy, (Fri Oct 20, 6:02 am)
Re: VCS comparison table, Andy Whitcroft, (Fri Oct 20, 6:45 am)
Re: VCS comparison table, Linus Torvalds, (Fri Oct 20, 1:05 am)
Re: VCS comparison table, Lachlan Patrick, (Fri Oct 20, 3:47 am)
Re: VCS comparison table, Petr Baudis, (Fri Oct 20, 6:16 am)
Re: VCS comparison table, Johannes Schindelin, (Fri Oct 20, 4:38 am)
Re: VCS comparison table, Petr Baudis, (Fri Oct 20, 6:13 am)
Re: VCS comparison table, Martin Pool, (Thu Oct 19, 1:56 am)
Re: VCS comparison table, Carl Worth, (Tue Oct 17, 9:25 pm)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 11:10 pm)
Re: VCS comparison table, Carl Worth, (Wed Oct 18, 11:38 am)
Re: VCS comparison table, Matthew D. Fuller, (Thu Oct 19, 5:10 am)
Re: VCS comparison table, Karl , (Thu Oct 19, 7:27 am)
Re: VCS comparison table, Petr Baudis, (Thu Oct 19, 7:46 am)
Re: VCS comparison table, Matthew D. Fuller, (Thu Oct 19, 12:01 pm)
Re: VCS comparison table, Matthew D. Fuller, (Thu Oct 19, 1:06 pm)
Re: VCS comparison table, Andreas Ericsson, (Thu Oct 19, 7:15 am)
Re: VCS comparison table, Matthieu Moy, (Thu Oct 19, 8:04 am)
Re: VCS comparison table, Petr Baudis, (Thu Oct 19, 8:33 am)
Re: VCS comparison table, Jakub Narebski, (Fri Oct 20, 7:50 am)
Re: VCS comparison table, Jakub Narebski, (Fri Oct 20, 9:26 am)
Re: VCS comparison table, Matthieu Moy, (Thu Oct 19, 9:44 am)
Re: VCS comparison table, Carl Worth, (Thu Oct 19, 12:03 pm)
Re: VCS comparison table, Matthieu Moy, (Thu Oct 19, 12:38 pm)
Re: VCS comparison table, Andreas Ericsson, (Wed Oct 18, 4:39 am)
Re: VCS comparison table, Matthew D. Fuller, (Wed Oct 18, 6:32 am)
Re: VCS comparison table, Andreas Ericsson, (Wed Oct 18, 7:19 am)
Re: VCS comparison table, Matthew D. Fuller, (Wed Oct 18, 8:43 am)
Re: VCS comparison table, Linus Torvalds, (Wed Oct 18, 12:07 pm)
Re: VCS comparison table, Jakub Narebski, (Wed Oct 18, 9:10 am)
Re: VCS comparison table, Sean, (Wed Oct 18, 9:02 am)
Re: VCS comparison table, Jakub Narebski, (Wed Oct 18, 5:07 am)
Re: VCS comparison table, Peter Baumann, (Wed Oct 18, 5:04 am)
Re: VCS comparison table, Sean, (Tue Oct 17, 6:00 pm)
Re: VCS comparison table, Matthieu Moy, (Fri Oct 20, 5:43 am)
Re: VCS comparison table, Lachlan Patrick, (Tue Oct 24, 2:02 am)
Re: VCS comparison table, Linus Torvalds, (Tue Oct 24, 2:31 am)
Re: VCS comparison table, David Rientjes, (Tue Oct 24, 2:45 am)
Re: VCS comparison table, Linus Torvalds, (Wed Oct 25, 10:29 pm)
Re: VCS comparison table, Linus Torvalds, (Tue Oct 24, 11:15 am)
Re: VCS comparison table, David Rientjes, (Tue Oct 24, 4:12 pm)
Re: VCS comparison table, Jeff King, (Wed Oct 25, 4:48 am)
Re: VCS comparison table, Junio C Hamano, (Wed Oct 25, 5:08 pm)
Re: VCS comparison table, Andreas Ericsson, (Thu Oct 26, 7:25 am)
Re: VCS comparison table, Junio C Hamano, (Wed Oct 25, 5:50 pm)
Re: VCS comparison table, Jeff King, (Wed Oct 25, 5:16 pm)
Re: VCS comparison table, Junio C Hamano, (Wed Oct 25, 5:32 pm)
Re: VCS comparison table, David Rientjes, (Wed Oct 25, 5:19 am)
Re: VCS comparison table, Jeff King, (Wed Oct 25, 5:49 am)
Re: VCS comparison table, David Rientjes, (Wed Oct 25, 1:21 pm)
Re: VCS comparison table, Andreas Ericsson, (Thu Oct 26, 7:15 am)
Re: VCS comparison table, David Lang, (Thu Oct 26, 12:30 pm)
Re: VCS comparison table, Nicolas Pitre, (Thu Oct 26, 1:03 pm)
Re: VCS comparison table, David Lang, (Thu Oct 26, 1:04 pm)
Re: VCS comparison table, Nicolas Pitre, (Thu Oct 26, 1:24 pm)
Re: VCS comparison table, Linus Torvalds, (Thu Oct 26, 1:16 pm)
Re: VCS comparison table, Jeff King, (Wed Oct 25, 5:03 pm)
Re: VCS comparison table, Andreas Ericsson, (Wed Oct 25, 9:49 am)
Re: VCS comparison table, David Lang, (Wed Oct 25, 5:51 pm)
Re: VCS comparison table, Shawn Pearce, (Wed Oct 25, 6:15 pm)
Re: VCS comparison table, David Lang, (Wed Oct 25, 6:41 pm)
Re: VCS comparison table, Shawn Pearce, (Tue Oct 24, 2:23 am)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 6:44 pm)
Re: VCS comparison table, Sean, (Tue Oct 17, 6:56 pm)
Re: VCS comparison table, Charles Duffy, (Wed Oct 18, 5:04 pm)
Re: VCS comparison table, Sean, (Wed Oct 18, 5:29 pm)
Re: VCS comparison table, Charles Duffy, (Wed Oct 18, 7:31 pm)
Re: VCS comparison table, Sean, (Wed Oct 18, 7:49 pm)
Re: VCS comparison table, Johannes Schindelin, (Wed Oct 18, 7:48 pm)
Re: VCS comparison table, Charles Duffy, (Wed Oct 18, 9:58 pm)
Re: VCS comparison table, Johannes Schindelin, (Thu Oct 19, 7:01 am)
Re: VCS comparison table, Charles Duffy, (Thu Oct 19, 7:10 am)
Re: VCS comparison table, Johannes Schindelin, (Thu Oct 19, 7:24 am)
Re: VCS comparison table, Charles Duffy, (Thu Oct 19, 7:30 am)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 7:11 pm)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 5:51 pm)
Re: VCS comparison table, Matthieu Moy, (Wed Oct 18, 2:22 am)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 6:28 pm)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 6:57 pm)
Re: VCS comparison table, Aaron Bentley, (Tue Oct 17, 7:33 pm)
Re: VCS comparison table, Andreas Ericsson, (Wed Oct 18, 4:13 am)
Re: VCS comparison table, Linus Torvalds, (Tue Oct 17, 7:16 pm)
Re: VCS comparison table, Jeff King, (Wed Oct 18, 1:36 am)
Re: VCS comparison table, Linus Torvalds, (Wed Oct 18, 10:52 am)
Re: VCS comparison table, Jeff King, (Wed Oct 18, 5:20 pm)
[ANNOUNCE] Example Cogito Addon - cogito-bundle, Petr Baudis, (Wed Oct 18, 2:52 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Alexander Belchenko, (Thu Oct 19, 2:46 am)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Aaron Bentley, (Fri Oct 20, 10:03 am)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Petr Baudis, (Wed Oct 18, 2:59 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Linus Torvalds, (Wed Oct 18, 4:08 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Nicolas Pitre, (Wed Oct 18, 3:09 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Junio C Hamano, (Wed Oct 18, 3:04 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Nicolas Pitre, (Wed Oct 18, 3:13 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Junio C Hamano, (Wed Oct 18, 3:33 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Shawn Pearce, (Wed Oct 18, 4:47 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Shawn Pearce, (Wed Oct 18, 3:18 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Nicolas Pitre, (Wed Oct 18, 3:33 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Shawn Pearce, (Wed Oct 18, 4:46 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Linus Torvalds, (Wed Oct 18, 5:17 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Junio C Hamano, (Wed Oct 18, 5:56 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Shawn Pearce, (Wed Oct 18, 5:41 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Junio C Hamano, (Wed Oct 18, 6:13 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Linus Torvalds, (Wed Oct 18, 6:42 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Nicolas Pitre, (Wed Oct 18, 7:18 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Linus Torvalds, (Wed Oct 18, 8:07 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Junio C Hamano, (Wed Oct 18, 11:46 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Linus Torvalds, (Thu Oct 19, 10:55 am)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Jan Harkes, (Thu Oct 19, 12:07 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Linus Torvalds, (Thu Oct 19, 12:48 pm)
[PATCH 2/2] Remove unused index tracking code., Jan Harkes, (Thu Oct 19, 8:20 pm)
Re: [PATCH 2/2] Remove unused index tracking code., Nicolas Pitre, (Thu Oct 19, 9:11 pm)
Re: [PATCH 2/2] Remove unused index tracking code., Jan Harkes, (Thu Oct 19, 10:27 pm)
Re: [PATCH 2/2] Remove unused index tracking code., Nicolas Pitre, (Thu Oct 19, 11:36 pm)
Re: [PATCH 2/2] Remove unused index tracking code., Junio C Hamano, (Thu Oct 19, 10:30 pm)
Re: [PATCH 2/2] Remove unused index tracking code., Jan Harkes, (Thu Oct 19, 10:46 pm)
Re: [PATCH 2/2] Remove unused index tracking code., Junio C Hamano, (Thu Oct 19, 9:35 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Jan Harkes, (Thu Oct 19, 8:20 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Jeff King, (Fri Oct 20, 10:41 am)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Nicolas Pitre, (Thu Oct 19, 10:27 am)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Nicolas Pitre, (Wed Oct 18, 11:01 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Johannes Schindelin, (Wed Oct 18, 8:31 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Linus Torvalds, (Wed Oct 18, 8:46 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Linus Torvalds, (Wed Oct 18, 8:15 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Johannes Schindelin, (Wed Oct 18, 7:50 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Junio C Hamano, (Wed Oct 18, 6:48 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Shawn Pearce, (Wed Oct 18, 7:22 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Linus Torvalds, (Wed Oct 18, 6:00 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Shawn Pearce, (Wed Oct 18, 6:11 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Nicolas Pitre, (Wed Oct 18, 5:41 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Shawn Pearce, (Wed Oct 18, 5:32 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Linus Torvalds, (Wed Oct 18, 5:55 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Junio C Hamano, (Wed Oct 18, 6:07 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Shawn Pearce, (Wed Oct 18, 6:05 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Junio C Hamano, (Wed Oct 18, 5:42 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Shawn Pearce, (Wed Oct 18, 5:52 pm)
Re: [ANNOUNCE] Example Cogito Addon - cogito-bundle, Junio C Hamano, (Wed Oct 18, 6:02 pm)
Re: VCS comparison table, Junio C Hamano, (Wed Oct 18, 1:57 am)
Re: VCS comparison table, Jakub Narebski, (Tue Oct 17, 6:59 pm)
Re: VCS comparison table, Shawn Pearce, (Tue Oct 17, 1:20 am)
Re: VCS comparison table, Martin Pool, (Tue Oct 17, 4:21 am)
Re: VCS comparison table, Nguyen Thai Ngoc Duy, (Mon Oct 16, 7:39 pm)
Re: VCS comparison table, Andy Whitcroft, (Mon Oct 16, 6:35 pm)
Re: VCS comparison table, Jon Smirl, (Sat Oct 14, 1:18 pm)
Re: VCS comparison table, Jakub Narebski, (Sat Oct 14, 1:42 pm)