4 ms·
Let's say we collaborate on the code below. I'll change line 1, you'll change line 5, we'll merge both changes and then we'll see how Perforce makes the code ru
by kubanczyk 5y ago
Let's say we collaborate on the code below. I'll change line 1, you'll change line 5, we'll merge both changes and then we'll see how Perforce makes the code run successfully "without conflict or even awareness of other person".
1 x := 0
2 x++
3 x++
4 x++
5 if x > 7 {
6 fail_horribly_at_runtime()
7 }
- jeffbee 5y agoExplain how you think git is different in this regard.
- detaro 5y agoYou're the one that claimed Perforce was better than git and could do this "without conflict or even awareness of the other person", so why don't you explain how git is worse? (I've never used Perforce and am genuinely curious what clever kinds of things it can do around merges, but more detail than "it's state-of-the-art and git is not" would be useful)
- jeffbee 5y agoNo, it is Linus who makes a bunch of claims about how Perforce is worse, in the video. If two people edit the same line of code based on the same original version, that's a conflict and there's nothing any SCM can do about it. Human must merge. But there's no reason that several developers can't work on different functions or other disjoint areas of the same file, unlike what Linus is claiming in the video. The video is essentially a long straw-man argument where Linus takes shitty part of CVS and SVN, which were terrible, and applies them to Perforce, which it's clear he has never used.
- LenP 5y agoTo answer your question, neither Git nor Perforce will cause a merge conflict. You’d need a SCM that isn’t line-based for that. With large teams, you need code review (which this bug can elide), great test coverage (the tests will likely have a merge conflict) and very importantly, a commit-by-commit build health indicator after merging. You can also do this in batches and bisect to find poisonous commits should a batch be broken - flakes notwithstanding.