That's not related to version control.
Unless you mean tracking code snippets after they got moved to differently-named files - which git can do just fine.
> In c specially in the kernel, renaming isn't an important use case.
The important use case there is code being moved to a different file.
A file rename is just a degenerate case where the code snippet is the entire file.
> This is the reason why I recommend it for java. For all other languages it's a nice tool too, but I'm unsure if it's so much better that I would make a recommendation on a mailing list.
The benefits of a new tool are usually dwarved by the cost of moving the entire development history to it.
In this particular case, I do not see what exactly would be easier in bzr, and in what ways.
> However bazaar hosting is so easy, we used at work a simple samba file- server.
A VCS on a Samba server? That's disaster waiting to happen!
Samba has a long, long history of corrupting files under concurrent updates if there is any network problem. In other words, it will work "just fine" until network problems strike while two or more updates are in mid-flights.
(NFS has the same problem, by the way.)
Regards,
Jo
P.S.: A VCS on a Samba server means you haven't even heard about all relevant scenarios, so please don't be annoyed if I'm cautious around your advice.
Without more details, it's really unclear whether that's bad support on the git side or a messed-up local repository on your side (which is easy to do with git, I do agree that git is somewhat hard to learn).
> > > In c specially in the kernel, renaming isn't an important use case.
> >
> > The important use case there is code being moved to a different file.
> > A file rename is just a degenerate case where the code snippet is the entire file.
>
> Personally I would be really surprised if any VCS can do follow such changes.
git can and does.
I didn't recognize that Ebean is currently using SVN, I was assuming it's using git already.
From that perspective, I do agree that moving from SVN to either bzr or git would probably be a good idea. Not because SVN has problems with renames but because SVN loses the history of all branches but one when merging. And generally because both git and bzr can adapt to a larger set of workflows, so changing the workflow is easier once the need arises.
I'm still a bit sceptical about the return on effort though. Moving to a different VCS won't help if you don't use it.
> Let assume you have a file A with methods foo() and bar(). In one branch they will be putted into files FOO and BAR. On main foo() and bar() will be changed. After that the branch will merged back.
> Will git this merge without problems? If this something I really want?
git will spot it if the functions were moved without changing their contents.
In which case, yes, you usually want the change merged into the moved functions, wouldn't you agree?
(SVN cannot track such moves. If bzr cannot either, I'd chalk that up as a point for git, otherwise as a point for git and bzr.)
> > > This is the reason why I recommend it for java. For all other languages it's a nice tool too, but I'm unsure if it's so much better that I would make a recommendation on a mailing list.
> >
> > The benefits of a new tool are usually dwarved by the cost of moving the entire development history to it.
> > In this particular case, I do not see what exactly would be easier in bzr, and in what ways.
>
> I don't think that this is a good deciding criteria, because all tools support such a feature.
I wasn't talking about a feature-by-feature comparison but about the relative costs of migrating and not having a feature.
> git, hg, bzr can convert one to another and get the code from SVN or CVS.
I have seen that proposed for using git on top of an SVN server.
Turns out you lose enough functionality that the advantages become marginal. The server cannot properly handle the semantics of what's happening at the clients, the logs are always less useful (if the semantics are too different, you usually end with less useful information in the logs than if everybody worked with the client that matches the server).
In summary, I'd say that moving to a different VCS is pointless if you stick with the old client and cannot reap the benefits.
> > > However bazaar hosting is so easy, we used at work a simple samba file- server.
> >
> > A VCS on a Samba server? That's disaster waiting to happen!
> > Samba has a long, long history of corrupting files under concurrent updates if there is any network problem. In other words, it will work "just fine" until network problems strike while two or more updates are in mid-flights.
> > (NFS has the same problem, by the way.)
> OK here you are right it's not optimal, depending on your network.
Well, I'm not going to be responsible if that setup flies in your faces :-)
> Our fileserver is reliable enough and we didn't have any problem with it, with a small team. Concurrency is not a so big issue, because bzr has a lock-mechanism.
Last time I looked, it is impossible to do failsafe locking with Samba or NFS in the presence of network problems.
I'm not going to test that though :-)
(Network problems could be caused by any networking device on the segment. An IP address collision is enough.)
> BTW: I have seen more corrupted files on a SVN- Server than on a SAMBA-server.
Fair enough, though the cases that I heard about either had people directly accessing the repo without going through the server (a VERY bad idea), or the corruption happened with the old database-based format.
Regards,
Jo
I tried a short example whit egit and it fail agains. Again I can send
you the repository. I think the sentence (without changing their
contents) it's an important point. Renaming a Class in Java always
change the content :-(
He isn't saying that - moves per se are definitely not a problem. I suppose something else is amiss.
I wouldn't exclude the possibility of misunderstandings between the github people and you.
> Then git loose it's good IDE- Support.
Egit does not give access to all features that git offers, but those that it offers should work just fine.
Disclaimer: Egit uses a Java reimplementation of git. AFAIK the gap in functionality is narrow and ever-closing, but it's not entirely impossible that you got hit by such a difference.
That said, your report is very unusual.
As in: I've been scanning git responses for quite a while now, and your experience registered with me as: "Huh? But git doesn't fail in this way!"
Doesn't mean your problems weren't real, just so unusual that I'm starting to look for unusual circumstances.
> > The most active community for creating patches etc. in OSS is in the
> > Git universe... all the big players (apache/eclipse/etc.) are
> > switching over.
> >
> > Mercurial and BZR may have their advantages, but the communities are
> > quite small compared to git.
>
> Well and most people use MS-Windows and MS-Office.
> I don't think that this is an good argument.
Dominik's argument can be interpreted in two ways.
One is "a million flies can't be wrong". Which is indeed a fallacy.
I think he meant "if I hit a problem, I have a better chance to find a solution through my search engine", then the argument stands.
I can take a look at your testrep (German comments are not a problem, I'm a German myself).
Be warned that I'm not a git guru - I'd be unable to distinguish a corrupted rep from a merely unusual one, for example.
But then my perspective would certainly be different from that of the people at Github, so maybe I can find something.
Regards,
Jo
If I understand you correct, you say the commandline git can detect it
but the eclipse-integration can't? Then git loose it's good IDE-
Support.
>
> As for BZR/GIT/HG etc.
>
> The most active community for creating patches etc. in OSS is in the Git
> universe... all
> the big players (apache/eclipse/etc.) are switching over.
>
> Mercurial and BZR may have their advantages, but the communities are quite
> small compared to git.
Well and most people use MS-Windows and MS-Office. I don't think that
this is an good argument. As I said above for some projects git is a
good choice, specially the big community, but remember even in the
main reference the kernel, many developer used hg. However if you use
refactoring in java-projects quite often I would recommend bzr. About
the renaming capabilities I only heard from git-fans that it works
fine, but I never saw a running example. I tried together with the
support from github to create such an example and I failed. It would
be great to see that it works, because it's always easier to swim with
the mainstream, but I didn't found any one who shows me.