<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Merge conflicts</title>
	<atom:link href="http://devblog.xing.com/everything-else/merge-conflicts/feed/" rel="self" type="application/rss+xml" />
	<link>http://devblog.xing.com/everything-else/merge-conflicts/</link>
	<description>Programming tidbits and other insights from the developers at XING.com</description>
	<lastBuildDate>Wed, 16 May 2012 13:16:55 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Björn Kaiser</title>
		<link>http://devblog.xing.com/everything-else/merge-conflicts/comment-page-1/#comment-1445</link>
		<dc:creator>Björn Kaiser</dc:creator>
		<pubDate>Thu, 08 Dec 2011 10:19:48 +0000</pubDate>
		<guid isPermaLink="false">http://devblog.xing.com/?p=1368#comment-1445</guid>
		<description>Thanks for the feedback so far. 

@Pascal: &quot;Pull requests&quot; are a good point. The times I refer to in the article, were times where we did not work with pull requests. Now we use github so this may improve.

@Karin: Good point ;-)

@Marco: I agree, frequently merge your code avoids most of merge conflicts

@Reza:
To clarify things, I am not accusing GIT or Linus for making me fix merge conflicts. 
Furthermore I am aware of merge workflows very well ;-)
My intention was more to investigate whether merge conflicts can point to organisational issues or can be avoided at all.
But I got your point &quot;maybe there is a problem with what I do&quot;. Thats missing in the article itself. Thanks also for the links.</description>
		<content:encoded><![CDATA[<p>Thanks for the feedback so far. </p>
<p>@Pascal: &#8220;Pull requests&#8221; are a good point. The times I refer to in the article, were times where we did not work with pull requests. Now we use github so this may improve.</p>
<p>@Karin: Good point ;-)</p>
<p>@Marco: I agree, frequently merge your code avoids most of merge conflicts</p>
<p>@Reza:<br />
To clarify things, I am not accusing GIT or Linus for making me fix merge conflicts.<br />
Furthermore I am aware of merge workflows very well ;-)<br />
My intention was more to investigate whether merge conflicts can point to organisational issues or can be avoided at all.<br />
But I got your point &#8220;maybe there is a problem with what I do&#8221;. Thats missing in the article itself. Thanks also for the links.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Reza J</title>
		<link>http://devblog.xing.com/everything-else/merge-conflicts/comment-page-1/#comment-1443</link>
		<dc:creator>Reza J</dc:creator>
		<pubDate>Wed, 07 Dec 2011 23:40:16 +0000</pubDate>
		<guid isPermaLink="false">http://devblog.xing.com/?p=1368#comment-1443</guid>
		<description>ok, normally I would&#039;ve stuck with a tl;dr here, but I don&#039;t even know where to start.

Your article is factually wrong. The whole concept your describing here is absolutely way off what merge algorithms were actually built and intended for. It&#039;s like using a fruit knife to explain the ability to cut wood for a chainsaw.

Let me explain: &quot;CVS, SVN or GIT, merging is a daily task.&quot;
If you told that to Linus or the author of any other first or second generation DVCS theyd rip you apart.
First of all merging and CVS is, well, hehe ... SVN was set out to fix that but still has other conceptual flaws.

Now lets go to GIT, GIT was made to merge 1000s(or maybe it was hundreds) of patches each day from peers. The whole concept is trust. Linus trusts that the peers hes merging  from only merged stuff from trusted peers or checked the code themselves or built it themselves.

Already you see a conceptual conflict here. How does that guy manage to merge tens of thousands of lines of code without conflict from people he doesn&#039;t talk to? Already you should be asking yourself maybe there is a problem with what I do.

But ok, you got a conflict. Git developers have spent hours and hours on how to make the process less painful.

If you keep having problems with conflicts on your codebase, the solution is not talking more to product managers, testers, management etc. The solution is to rethink the way you work. Because it sounds broken. You need to talk less and get more done.

Here are 2 reads on that topic
http://scottchacon.com/2011/08/31/github-flow.html
http://iwata.github.com/blog/2011/11/21/git-royale/</description>
		<content:encoded><![CDATA[<p>ok, normally I would&#8217;ve stuck with a tl;dr here, but I don&#8217;t even know where to start.</p>
<p>Your article is factually wrong. The whole concept your describing here is absolutely way off what merge algorithms were actually built and intended for. It&#8217;s like using a fruit knife to explain the ability to cut wood for a chainsaw.</p>
<p>Let me explain: &#8220;CVS, SVN or GIT, merging is a daily task.&#8221;<br />
If you told that to Linus or the author of any other first or second generation DVCS theyd rip you apart.<br />
First of all merging and CVS is, well, hehe &#8230; SVN was set out to fix that but still has other conceptual flaws.</p>
<p>Now lets go to GIT, GIT was made to merge 1000s(or maybe it was hundreds) of patches each day from peers. The whole concept is trust. Linus trusts that the peers hes merging  from only merged stuff from trusted peers or checked the code themselves or built it themselves.</p>
<p>Already you see a conceptual conflict here. How does that guy manage to merge tens of thousands of lines of code without conflict from people he doesn&#8217;t talk to? Already you should be asking yourself maybe there is a problem with what I do.</p>
<p>But ok, you got a conflict. Git developers have spent hours and hours on how to make the process less painful.</p>
<p>If you keep having problems with conflicts on your codebase, the solution is not talking more to product managers, testers, management etc. The solution is to rethink the way you work. Because it sounds broken. You need to talk less and get more done.</p>
<p>Here are 2 reads on that topic<br />
<a href="http://scottchacon.com/2011/08/31/github-flow.html">http://scottchacon.com/2011/08/31/github-flow.html</a><br />
<a href="http://iwata.github.com/blog/2011/11/21/git-royale/">http://iwata.github.com/blog/2011/11/21/git-royale/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: marco</title>
		<link>http://devblog.xing.com/everything-else/merge-conflicts/comment-page-1/#comment-1438</link>
		<dc:creator>marco</dc:creator>
		<pubDate>Tue, 06 Dec 2011 20:56:33 +0000</pubDate>
		<guid isPermaLink="false">http://devblog.xing.com/?p=1368#comment-1438</guid>
		<description>hi björn,

i agree with you, that talking to colleagues is very important. 
however in your post you imply that talking to the whole company is neccessary to prevent merge conflicts.

i don&#039;t see why you expect from a project or product manager to have enough technical expertise that they can see that 2 different stories affect same parts of the source code? 

in my opinion the first and simplest thing to avoid merge conflicts is to commit (and even more important) update your local code as often as possible with the changes your colleagues commited. the chance for merge conflicts decreases on every update you do. if a conflict occurs it is often so small that it takes me a minute to solve it.

nevertheless your solutions are good and be worth discussed e.g. in a retrospective. but i see that taking only as an additive not as the main solution.</description>
		<content:encoded><![CDATA[<p>hi björn,</p>
<p>i agree with you, that talking to colleagues is very important.<br />
however in your post you imply that talking to the whole company is neccessary to prevent merge conflicts.</p>
<p>i don&#8217;t see why you expect from a project or product manager to have enough technical expertise that they can see that 2 different stories affect same parts of the source code? </p>
<p>in my opinion the first and simplest thing to avoid merge conflicts is to commit (and even more important) update your local code as often as possible with the changes your colleagues commited. the chance for merge conflicts decreases on every update you do. if a conflict occurs it is often so small that it takes me a minute to solve it.</p>
<p>nevertheless your solutions are good and be worth discussed e.g. in a retrospective. but i see that taking only as an additive not as the main solution.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karin Basel</title>
		<link>http://devblog.xing.com/everything-else/merge-conflicts/comment-page-1/#comment-1437</link>
		<dc:creator>Karin Basel</dc:creator>
		<pubDate>Tue, 06 Dec 2011 16:50:57 +0000</pubDate>
		<guid isPermaLink="false">http://devblog.xing.com/?p=1368#comment-1437</guid>
		<description>&quot;Talk to your product manager
Talk to your project manager&quot;

I would like to add something: Sometimes, your team&#039;s and/or the other team&#039;s agile tester may know about it, so:

Talk to your tester</description>
		<content:encoded><![CDATA[<p>&#8220;Talk to your product manager<br />
Talk to your project manager&#8221;</p>
<p>I would like to add something: Sometimes, your team&#8217;s and/or the other team&#8217;s agile tester may know about it, so:</p>
<p>Talk to your tester</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pascal Precht</title>
		<link>http://devblog.xing.com/everything-else/merge-conflicts/comment-page-1/#comment-1435</link>
		<dc:creator>Pascal Precht</dc:creator>
		<pubDate>Tue, 06 Dec 2011 15:25:28 +0000</pubDate>
		<guid isPermaLink="false">http://devblog.xing.com/?p=1368#comment-1435</guid>
		<description>Okay, First Off, i agree with the fact that those Kinds of conflicts Steel A Lot of Time. I use SVN in the Company And yes, we&#039;re trying to avoid conflicts while we&#039;re working on our project.

And that&#039;s exactly the Point. Using SVN And making a Lot of Meetings because of Many different Communication Problems, is in my opinion Not the right Approach for a certain Solution.

There are a few buzzwords for how to avoid all these Problems wirh Communication And conflicts while using a VCS:

- Git
- working asynchronously
- no Meetings 
- Not pulling developers Out Off the Flow 

Let me dig into These points. If you&#039;re using Git you don&#039;t Ever have These Kind of suicide Feelings when trying to Merge a Branch back to Trunk. Branching, merging, all This stuff which is a pain in the Ass when working with SVN, is damn Easy to do in Git. Merging in Git is a very powerful Thing that you have to use if you wanna be productive. And its okay, because its Easy.

Working asynchronously means That you do your work. There is no Meeting which Pulls you Out of the Flow. Meetings are Time steeling. If you wanna Talk about Things, do it via Email, send pull requests And use These as a discussion Base. 

So in my opinion, all the Things you pointed Out there are very Easy to avoid, if you&#039;re Doing it right.</description>
		<content:encoded><![CDATA[<p>Okay, First Off, i agree with the fact that those Kinds of conflicts Steel A Lot of Time. I use SVN in the Company And yes, we&#8217;re trying to avoid conflicts while we&#8217;re working on our project.</p>
<p>And that&#8217;s exactly the Point. Using SVN And making a Lot of Meetings because of Many different Communication Problems, is in my opinion Not the right Approach for a certain Solution.</p>
<p>There are a few buzzwords for how to avoid all these Problems wirh Communication And conflicts while using a VCS:</p>
<p>- Git<br />
- working asynchronously<br />
- no Meetings<br />
- Not pulling developers Out Off the Flow </p>
<p>Let me dig into These points. If you&#8217;re using Git you don&#8217;t Ever have These Kind of suicide Feelings when trying to Merge a Branch back to Trunk. Branching, merging, all This stuff which is a pain in the Ass when working with SVN, is damn Easy to do in Git. Merging in Git is a very powerful Thing that you have to use if you wanna be productive. And its okay, because its Easy.</p>
<p>Working asynchronously means That you do your work. There is no Meeting which Pulls you Out of the Flow. Meetings are Time steeling. If you wanna Talk about Things, do it via Email, send pull requests And use These as a discussion Base. </p>
<p>So in my opinion, all the Things you pointed Out there are very Easy to avoid, if you&#8217;re Doing it right.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

