<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>Dariusz Łuksza &#187; eclipse</title>
	<atom:link href="http://luksza.org/category/programing/eclipse-programing/feed/" rel="self" type="application/rss+xml" />
	<link>http://luksza.org</link>
	<description>myśli luźno zebrane ... ja i moja jaźń w intenecie</description>
	<lastBuildDate>Wed, 29 Feb 2012 10:11:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>

   <image>
    <title>Dariusz Łuksza</title>
    <url>http://0.gravatar.com/avatar/ed2d261ca5db36a17e690dc736dcd9ef.png?s=48</url>
    <link>http://luksza.org</link>
   </image>
		<item>
		<title>EGit Iteractive Adding</title>
		<link>http://luksza.org/2011/egit-iteractive-adding/</link>
		<comments>http://luksza.org/2011/egit-iteractive-adding/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 23:03:43 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[compare editor]]></category>
		<category><![CDATA[egit]]></category>
		<category><![CDATA[interactive adding]]></category>
		<category><![CDATA[synchronize view]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=958</guid>
		<description><![CDATA[So what is &#8220;interactive adding&#8221; in git? Imagine situation when you change two or three lines in file (this could be also two or three blocks/methods), then you realize that you will want to commit those changes in two (three or more) separate commits. Here is Al Blue&#8217;s description how interactive adding works in native [...]]]></description>
			<content:encoded><![CDATA[<p>So what is &#8220;interactive adding&#8221; in git? Imagine situation when you change two or three lines in file (this could be also two or three blocks/methods), then you realize that you will want to commit those changes in two (three or more) separate commits.</p>
<p>Here is Al Blue&#8217;s description how <em>interactive adding</em> works in native git: <a style="font-size: 15px; font-weight: bold;" href="http://alblue.bandlem.com/2011/10/git-tip-of-week-interactive-adding.html">Git Tip of the Week: Interactive Adding</a></p>
<p>What about EGit? Honestly this is currently supported &#8230; but it isn&#8217;t really straight forward to access. You need to select a file then choose from context menu <em>Team</em> &gt; <em>Compare With</em> &gt; <em>Git Index</em> and then you can easily move changes around, finally when you are happy with both versions (left is working tree and right is one that will be staged/added to index) just save compare editor contents. Version from right hand side will be added to index as it is in this editor.</p>
<p>OK, so now you can easily stage and unstage partial changes &#8230; maybe you would also like to partial replace staged changes by version in HEAD? Currently in version 1.1 you can compare version from git index with HEAD version using context menu <em>Team</em> &gt; <em>Compare With</em> &gt; <em>Git Index with HEAD</em>, but you cannot overwrite anything &#8230; yet, because (hopefully) in 1.2 such option will be available. <a href="http://egit.eclipse.org/r/#change,4239" target="_blank">Here is patch</a> that adds this functionality (to be honest this is a side effect&#8230;).</p>
<p>And what about (my favorite) Synchronize View? Unfortunately EGit 1.1 don&#8217;t allow to move any changes in compare editors launched from Synchronize View &#8230; but with change mentioned above and with <a href="http://egit.eclipse.org/r/#change,4196" target="_blank">this one</a> both features would be available from <em>Git Commits</em> model (before it was named as <em>Git Change Set</em> model)</p>
<p>Here is a short screen cast that shows how this work:</p>
<p style="text-align: center;"> <object width="500" height="281"><param name="movie" value="http://www.youtube.com/v/d94RI9QA-RU?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/d94RI9QA-RU?version=3" type="application/x-shockwave-flash" width="500" height="281" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=958" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2011/egit-iteractive-adding/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>End of Google Summer of Code 2011</title>
		<link>http://luksza.org/2011/end-of-google-summer-of-code-2011/</link>
		<comments>http://luksza.org/2011/end-of-google-summer-of-code-2011/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 21:32:37 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[soc11]]></category>
		<category><![CDATA[egit]]></category>
		<category><![CDATA[gsoc11]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=951</guid>
		<description><![CDATA[Officially coding period in Google Summer of Code was closed last Monday (August 22nd) , so this is good time to sum up last three months of my work on EGit project. During that time I&#8217;ve manage to contribute 32 commits (29 of them are already merged into master, rest is pending for review). I [...]]]></description>
			<content:encoded><![CDATA[<p>Officially coding period in Google Summer of Code was closed last Monday (August 22nd) , so this is good time to sum up last three months of my work on EGit project.</p>
<p>During that time I&#8217;ve manage to contribute 32 commits (29 of them are already merged into master, rest is pending for review). I have also two not finished changes in my local git repository. First is about supporting non-workspace files in <em>Workspace</em> presentation model in sync-view, second is refactoring of current Git Change Set implementation.</p>
<p>Here is detailed list of things that was done during GSoC and are available in current nightly build:</p>
<ul>
<li>improved synchronize wizard</li>
<li><em>Workspace</em> presentation model will refresh after repository change</li>
<li>pushing from sync view to multiple repositories is now possible</li>
<li><em>Git Change Set</em> presentation model will be refreshed after workspace change</li>
<li>context menu in synchronize view was cleaned up and git actions are shown for multiple selections</li>
<li>synchronization on folder level is now possible and it will narrow results just for selected folder (when synchronization is launched for project then results will show changes in whole repository)</li>
<li>local changes can be drag and dropped between <em>&lt;working tree&gt;</em> and <em>&lt;staged changes&gt;</em> nodes in Git Change Set presentation model</li>
</ul>
<p>Performance improvements for Workspace presentation model are still awaiting for review in Gerrit. Some part of performance and memory usage improvements for <em>Git Change Set</em> are also pending in Gerri, I&#8217;m currently working on rest of required refactoring in <em>Git Change Set</em> presentation model.</p>
<p>I want to thank my mentor Matthias Sohn for his commitment in GSoC, for reviewing my patches and his feedback. It was a great pleasure working  with him! <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=951" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2011/end-of-google-summer-of-code-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Progress on non-workspace files in Workspace presentation model</title>
		<link>http://luksza.org/2011/progress-on-non-workspace-files-in-workspace-presentation-model/</link>
		<comments>http://luksza.org/2011/progress-on-non-workspace-files-in-workspace-presentation-model/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 22:13:37 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[soc11]]></category>
		<category><![CDATA[egit]]></category>
		<category><![CDATA[non-workspace]]></category>
		<category><![CDATA[synchronize view]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=940</guid>
		<description><![CDATA[For last three weeks I was working on including non-workspace files in Workspace presentation model in Synchronize View. This idea can sounds weird since the Workspace presentation model was designed to show only changed files that are in Eclipse workspace &#8230; but there are some use cases in which such behavior seams to be reasonable (eg. [...]]]></description>
			<content:encoded><![CDATA[<p>For last three weeks I was working on including non-workspace files in <em>Workspace</em> presentation model in Synchronize View. This idea can sounds weird since the <em>Workspace</em> presentation model was designed to show only changed files that are in Eclipse workspace &#8230; but there are some use cases in which such behavior seams to be reasonable (eg. EGit and JGit projects doesn&#8217;t import repository root into workspace only projects are imported and files like master pom.xml, README, LICENCE and so on are left outside workspace).</p>
<p>If you don&#8217;t import all data into Eclipse workspace you won&#8217;t see any incoming nor outgoing changes. Even more, after merge/rebase actions changes in non-workspace files will magically appear in those resources and can even brake something (eg. massed up in master pom.xml file).</p>
<p>So, what is current status ? First of all I want to point that I&#8217;m describing here current situation in my <strong>working copy</strong>, described here changes currently are <strong>not</strong> available in public. After hours of debugging, code analysis and rewriting my code I&#8217;ve manage to show some indication in synchornize view that there are some non-workspace chagnes. The next step will be to show what particular file was changed and then enable all operations like <em>overwrite</em>, <em>mark as merged</em>, etc.</p>
<p>Here is a screenshot showing current status:</p>
<p style="text-align: center;"><a href="http://luksza.org/wp-content/uploads/2011/08/egit-non-workspace1.png"><img class="aligncenter size-thumbnail wp-image-942" title="Non-workspace files in Workspace presenation model" src="http://luksza.org/wp-content/uploads/2011/08/egit-non-workspace1.png" alt="Non-workspace files in Workspace presenation model" width="433" height="411" /></a><a href="http://luksza.org/wp-content/uploads/2011/08/egit-non-workspace.png"><br />
</a>As you can see there is <em>home</em> folder in sync results. It even have expand indicator (but after expanding it there is nothing inside). I suppose that on windows this folder will correspond to drive letter, but I&#8217;m not sure here.  Now I only need to <em>tell</em> Team Framework that there are some files inside <em>home</em> node &#8230;</p>
<p>This seams to be quite easy task, since parent folder is already included in view &#8230; but this isn&#8217;t that easy. First of all <em>Workspace</em> model is based on <em>IResource</em>&#8216;s with are manageable by Eclipse platform. Of course I can create such resource using <em>IWorkspaceRoot.getFolder()</em> and <em>IWorkspaceRoot.getFile()</em>. Unfortunately non-workspace resources created by those two methods will return theirs first segment (on unix system it will be usually /home) as theirs project. Of course such project doesn&#8217;t exist in workspace therefore this node is empty.</p>
<p>Honestly speaking I currently don&#8217;t have any good ides how to move things forward &#8230; as usually I&#8217;ll dive into debugging and code analysis &#8230;</p>
<p>Any hints and ideas from the community are <strong>kindly welcome</strong>!</p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=940" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2011/progress-on-non-workspace-files-in-workspace-presentation-model/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Huge performance boost for EGit sync-view</title>
		<link>http://luksza.org/2011/huge-performance-boost-for-egit-sync-view/</link>
		<comments>http://luksza.org/2011/huge-performance-boost-for-egit-sync-view/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 20:20:30 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[soc11]]></category>
		<category><![CDATA[egit]]></category>
		<category><![CDATA[gsoc11]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[synchronize view]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=927</guid>
		<description><![CDATA[For last few days I was working on EGit Synchronize View performance, especially on Workspace presentation model (the Git Change Set is next on my list ). My starting point was 1m 40s to compare two linux kernel versions, v2.6.36 versus v2.6.38-rc2. Such result seams to be very good, but you need to know that [...]]]></description>
			<content:encoded><![CDATA[<p>For last few days I was working on EGit Synchronize View performance, especially on <em>Workspace</em> presentation model (the <em>Git Change Set</em> is next on my list <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). My starting point was 1m 40s to compare two linux kernel versions, v2.6.36 versus v2.6.38-rc2. Such result seams to be very good, but you need to know that it was achived on SSD hard drive and comparing to regular HDD it would be much worst (maybe more then 3 or 4 minutes).</p>
<p>What can be improved ? Fist of all, current implementation whenever it is asked for members of particular folder it <em>opens repository</em><span style="color: #ff9900;">*</span> and read data directly from it. Of course there is a cashing mechanism, but it is only on single resource level. Therefore when you are launching synchronization on repository that have about 300 folders, current implementation will create and configure 300 <em>connections<span style="color: #ff9900;">*</span></em> to repository to read data and then will cache it.</p>
<p>So, my idea was to create only one <em>connection<span style="color: #ff9900;">*</span>,</em> read all data at once and put them into global cache. This cache will be used whenever any list of members for given folder will be required. This approach gives about 2.5x performance boost to synchronization (from 1m 40s down to 40s). This result looks much better and maybe on HDD this action will take less then 2 minutes &#8230; but this isn&#8217;t over <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Reading members of folder is one thing, but getting information about particular file (it is changed, added or removed and does this change is incoming, outgoing or conflicting) is another. Currently we are reusing default implementation of SyncInfo class from Team Framework. This is really good implementation &#8230; when you cannot obtain such information from version control system. In Git  we have SHA-1 for each file and folder version and we didn&#8217;t have to compare file contents to check they are similar or not, comparing SHA-1 is sufficient. This should save lots of CPU time, disk IO&#8217;s and developer time waiting for synchronization to finish <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>Now when I already have cache that contains list of all changed resources it was natural thing to add information about change type to it. Then whenever Team Framework need to know change type it can be easily obtained from this cache &#8230; no IO&#8217;s are needed, no comparison just read from in-memory-cache and return proper value.</p>
<p>I&#8217;m sure that you are wondering how fast synchronization can be now &#8230; I can only that it is <strong>REALLY</strong> fast &#8230; as you can remember my stating point was <strong>1m 40s,</strong> now same comparison will finish in less than <strong>7s</strong>!! This means that now synchronization will be <strong>14 times</strong> faster then before! What this means for a regular user? Well, it meas that you will get results of &#8216;<em>Synchronize Workspace</em>&#8216; action almost instantly.</p>
<p>Unfortunately, mentioned above changes are sill awaiting for review in <a href="http://egit.eclipse.org/r/" target="_blank">gerrit</a>, you can grab them from change <a href="http://egit.eclipse.org/r/#change,3891" target="_blank">#3891</a> and build it locally. I hope this will be included in 1.1 release &#8230;</p>
<p><span style="color: #ff9900;">*</span> jgit uses concept of walks (with filters) through repository, but I&#8217;ve used more commonly recognized terminology here</p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=927" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2011/huge-performance-boost-for-egit-sync-view/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Drag-and-Drop staging/un-staging in Git Change Set model</title>
		<link>http://luksza.org/2011/drag-and-drop-stagingun-staging-in-git-change-set-model/</link>
		<comments>http://luksza.org/2011/drag-and-drop-stagingun-staging-in-git-change-set-model/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 23:59:44 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[soc11]]></category>
		<category><![CDATA[drag and drop]]></category>
		<category><![CDATA[egit]]></category>
		<category><![CDATA[git change set]]></category>
		<category><![CDATA[staging area]]></category>
		<category><![CDATA[synchronize view]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=900</guid>
		<description><![CDATA[The EGit 1.0 will be officially released in upcoming days, but I&#8217;ve already started to working on version 1.1. Today I would like to demonstrate you a feature that I was recently working on. To be honest the main idea of this functionality comes from my GSoC 2010 proposal, but I didn&#8217;t manage to implement [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">The EGit 1.0 will be officially released in upcoming days, but I&#8217;ve already started to working on version 1.1. Today I would like to demonstrate you a feature that I was recently working on. To be honest the main idea of this functionality comes from my GSoC 2010 proposal, but I didn&#8217;t manage to implement it &#8230; until now <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> , so what it is?</p>
<p style="text-align: left;">The post title should told you everything about it &#8230; but (if not) I&#8217;ve also prepared a screencast that is embedded above where you can clearly see how it works in real <em>environment</em>.</p>
<p style="text-align: center;"><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/gBWQjXfDXbQ?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/gBWQjXfDXbQ?version=3" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: left;">I know that in version 1.0 the <em>Staging view</em> was introduced, to be honest, I don&#8217;t think that separate view for staging is really needed. But I don&#8217;t have anything against it, it looks cool and works properly <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Also I don&#8217;t see anything bad with having this functionality doubled in <em>Git Change Set</em> model and give users possibility to choose between both of them.</p>
<p style="text-align: left;">I&#8217;ve pushed this feature (and all dependent changes) yesterday. This is quite huge change so I think that we&#8217;ll iterate few times with it before it will be merged into master, but I hope it will be included in 1.1.</p>
<p style="text-align: left;">As always feel free to share any ideas and comments!</p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=900" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2011/drag-and-drop-stagingun-staging-in-git-change-set-model/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Eclipse DemoCamp Poznan 2011</title>
		<link>http://luksza.org/2011/eclipse-democamp-poznan-2011/</link>
		<comments>http://luksza.org/2011/eclipse-democamp-poznan-2011/#comments</comments>
		<pubDate>Fri, 27 May 2011 08:14:52 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[code review]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[egit]]></category>
		<category><![CDATA[gerrit]]></category>
		<category><![CDATA[poznan]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=894</guid>
		<description><![CDATA[Same as year ago, I&#8217;ll be presenting some new features in Eclipse on DemoCamp Poznan. This time I&#8217;ll be mainly speaking about code review and how this process can be handled from Eclipse. Everything will be based on Gerrit Code review, I&#8217;ll also show Gerrit Jenkins/Hudson integration by Gerrit Trigger, another used project will be [...]]]></description>
			<content:encoded><![CDATA[<p>Same as year ago, I&#8217;ll be presenting some new features in Eclipse on <a href="http://wiki.eclipse.org/Eclipse_DemoCamps_Indigo_2011/Poznan" target="_blank">DemoCamp Poznan</a>.</p>
<p>This time I&#8217;ll be mainly speaking about code review and how this process can be handled from Eclipse. Everything will be based on <a href="https://code.google.com/p/gerrit/" target="_blank">Gerrit Code</a> review, I&#8217;ll also show Gerrit <a href="http://jenkins-ci.org" target="_blank">Jenkins</a>/<a href="http://hudson-ci.org" target="_blank">Hudson</a> integration by <a href="https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger" target="_blank">Gerrit Trigger</a>, another used project will be <a href="http://eclipse.org/reviews" target="_blank">mylyn-reviews</a> and last but not least will be (of course) <a href="http://eclipse.org/egit" target="_blank">EGit</a>. All those projects will be mixed up together to give an quick overview of Code Review 2.0</p>
<p>If you are interested in, please &#8220;register&#8221; on <a href="http://wiki.eclipse.org/Eclipse_DemoCamps_Indigo_2011/Poznan" target="_blank">event wiki page</a>.</p>
<p>See you in Poznan!</p>
<p>&nbsp;</p>
<hr />
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Here you can find my <a href="/pub/put-more-eyes-on-code.pdf" target="_blank">presentation slides</a>.</p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=894" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2011/eclipse-democamp-poznan-2011/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>EGit Synchronize View Workflow Updates</title>
		<link>http://luksza.org/2011/egit-synchronize-view-workflow-updates/</link>
		<comments>http://luksza.org/2011/egit-synchronize-view-workflow-updates/#comments</comments>
		<pubDate>Sun, 15 May 2011 14:47:20 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[soc11]]></category>
		<category><![CDATA[egit]]></category>
		<category><![CDATA[synchronize view]]></category>
		<category><![CDATA[worflow]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=857</guid>
		<description><![CDATA[One part of my Google Summer of Code project is to improve EGit Synchronization workflow and make it easier for new user to understood how it works. So almost two weeks ago I&#8217;ve write a post with proposed new workflow for Synchronize Wizard. The main idea of that post was to initialize discussion with community [...]]]></description>
			<content:encoded><![CDATA[<p>One part of <a href="https://socghop.appspot.com/gsoc/proposal/review/google/gsoc2011/dariusz_luksza/1" target="_blank">my Google Summer of Code project</a> is to improve EGit Synchronization workflow and make it easier for new user to understood how it works.</p>
<p>So almost two weeks ago I&#8217;ve write a <a href="http://luksza.org/2011/new-synchronize-wizard-for-egit/" target="_blank">post with proposed new workflow for Synchronize Wizard</a>. The main idea of that post was to initialize discussion with community how they want to use this wizard. According to Google Analytics this post was displayed around 120 times with isn&#8217;t that bad I think &#8230; but only one person leave a comment on it with isn&#8217;t a good result. Maybe I&#8217;m doing something wrong or I&#8217;m not making myself clear enough. Or maybe this topic isn&#8217;t so important for other people &#8230; I don&#8217;t know, maybe you can help me and give me some hints?</p>
<p>Apart from this, here is another part of changes that are proposed to be done in Synchronize workflow. Most of them are waiting for <a href="http://egit.eclipse.org/r/" target="_blank">comments and approval in gerrit</a>. This a good moment for comments and share thoughts about current implementation, before it will be merged into master branch. Additionally I&#8217;ve opened two bugs for discussion on Synchronize Wizard and Team menu based workflows:</p>
<ul>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=344891" target="_blank">344891</a> &#8211; for Team context menu</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=344888">344888</a> &#8211; for sync-wizard</li>
</ul>
<p>I&#8217;m understood that you don&#8217;t want to play with our code base and struggle with project setup only to check one of two new features, so here is a short description of my ideas and some screenshots:</p>
<ol>
<li><strong>Always use current selected branch (HEAD) as source of synchronization<br />
</strong>As you may know currently the synchronization-dialog (this is a dialog that pops up after you select <em>Team &gt; Synchronize&#8230;</em> from project&#8217;s context menu) allows select source and destination branch, and after that you can launch the synchronization action.When I was implementing this feature I had in mind <em>git diff</em> command, where you can easily compare two given points in repository history. But this command produces a patch-like output. You cannot move changes around, the only action that you can do with it is to only review it. In case of Synchronize View we use to use it to move changes around and prepare commit. So it is more then simple <em>git diff</em>.</p>
<p>Another huge issue with this approach is that handling Synchronize View context menu actions like &#8216;<em>Commit</em>&#8216;, <em>&#8216;Merge</em>&#8216;, &#8216;<em>Overwrite and Update</em>&#8216; gets really complicated when base branch isn&#8217;t actual working branch.</p>
<p>Because of that I&#8217;ve decided that in new workflow you need to select only a destination branch! For now I think that I&#8217;ll not remove this functionality from EGit code, because maybe in feature we&#8217;ll found a use case when comparing two given branches without switching on one of them could be use full.</li>
<li><strong>Always fetch changes before synchronization<br />
</strong>I&#8217;ve spotted that new git users that comes from <em>CVS</em> or <em>SVN</em> doesn&#8217;t really get the idea of &#8216;fetching changes locally&#8217;. They launch synchronization and want to see incoming changes without fetching them into repository. This feature could be also useful for old git users, because it will save couple of mouse clicks <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> The implementation that I&#8217;ve proposed don&#8217;t launch fetch action all the time. It checks does current branch tracks any remote branch, if yes it fetches changes from that remote, otherwise it will not do anything.</p>
<p><em>OK, but what when I&#8217;m off-line and I&#8217;m working on branch that tracks origin/master, I would be forced to wait until connection timeout occurs?</em></p>
<p>Well &#8230; it depends <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Every time fetch fails you will be informed by dialog that you can disable automatic-fetch in <em>Team &gt; Git</em> preferences. So in the worst case you will wait only once for connection timeout, then you will be informed that you can disable auto-fetch.</li>
<li><strong>New Synchronize Wizard<br />
</strong>After discussion in bug <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=344888">344888</a> I&#8217;ve decided to abandon changes that I&#8217;ve presented two weeks ago. And implement it this way:<a href="http://luksza.org/wp-content/uploads/2011/05/egit-synchronize-wizard.png"><img class="aligncenter size-medium wp-image-889" title="EGit Synchronize Wizard" src="http://luksza.org/wp-content/uploads/2011/05/egit-synchronize-wizard-300x265.png" alt="EGit Synchronize Wizard" width="300" height="265" /></a></p>
<p>As you can see there is only destination branch. Also all project names have decorations that describes repository name and current branch name. There i a single button for include local changes and that&#8217;s all, no more pages and logic&#8217;s.</p>
<p>Additionally, the Destination branch list will contain also additional refs like <em>FETCH_HEAD</em></li>
<li><strong>New context menu option &#8216;Synchronize Workspace&#8217;</strong>
<p><a href="http://luksza.org/wp-content/uploads/2011/05/egit-sync-synchronize-workspace.png"><img class="aligncenter size-medium wp-image-887" title="EGit Synchronize Workspace" src="http://luksza.org/wp-content/uploads/2011/05/egit-sync-synchronize-workspace-300x102.png" alt="EGit Synchronize Workspace" width="300" height="102" /></a></p>
<p>This a short cut for comparing <em>HEAD</em> against <em>HEAD</em> with included locally made changes. It is useful when you want to see what changes you made in workspace before you commit them. I think that this is a most use case for synchronize view therefore I&#8217;ve decided to add this shortcut.</li>
<li><strong>No more Synchronize-dialog<br />
</strong>This a Matthias Sohn idea to replace synchronize-dialog with dynamically build sub menu entry (same as in &#8216;<em>Switch To</em>&#8216; action).</p>
<p style="text-align: center;"><a href="http://luksza.org/wp-content/uploads/2011/05/egit-sync-synchronize-sub-menu.png"><img class="aligncenter size-medium wp-image-883" title="EGit Synchronize... Sum Menu" src="http://luksza.org/wp-content/uploads/2011/05/egit-sync-synchronize-sub-menu-300x128.png" alt="EGit Synchronize... Sum Menu" width="300" height="128" /></a></p>
<p>This sub menu will contain 20 elements at most. They are alphabetically ordered and include local and remote branches, tags and additional refs like <em>FETCH_HEAD</em>. You don&#8217;t find here HEAD and name of current selected branch, because for synchronizing against those is &#8216;<em>Synchronize Workspace</em>&#8216; action. If you don&#8217;t see branch or tag that you would like to synchronize against, you need to choose &#8216;<em>Custom&#8230;</em>&#8216; option. After that the Synchronize Wizard will be shown where you can choose destination from complete list of branches, tags and additional refs.</li>
<li><strong>Push and Pull actions in Synchronize View toolbar<br />
</strong>&nbsp;</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-879" title="EGit SynchronizeView Push and Pull Toolbat Actions" src="http://luksza.org/wp-content/uploads/2011/05/egit-sync-view-push-and-pull.png" alt="EGit SynchronizeView Push and Pull Toolbat Actions" width="398" height="161" /></p>
<p>This change is merged into current master, so if you want to check out that you need to install a nightly build of EGit.</p>
<p>There is only one limitation for push action, it works only when you are synchronizing one repository. It would be disabled when you synchronizing more then one repo.</li>
</ol>
<p>It is all for now. <strong>Any ideas and comments are welcome</strong> (and needed <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )!.</p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=857" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2011/egit-synchronize-view-workflow-updates/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>New synchronize wizard for EGit</title>
		<link>http://luksza.org/2011/new-synchronize-wizard-for-egit/</link>
		<comments>http://luksza.org/2011/new-synchronize-wizard-for-egit/#comments</comments>
		<pubDate>Tue, 03 May 2011 09:35:09 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[soc11]]></category>
		<category><![CDATA[egit]]></category>
		<category><![CDATA[synchronize view]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=848</guid>
		<description><![CDATA[Here are some screenshots of new redesigned steps in EGit synchronization wizard. The main idea is to make most common synchronization usage as short as it is possible. So I come with idea of &#8216;predefined synchronization configurations&#8217;. In first step of sync-wizard you can select from three options: Working Tree Remote Tracking Custom After selecting [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some screenshots of new redesigned steps in EGit synchronization wizard. The main idea is to make most common synchronization usage as short as it is possible. So I come with idea of &#8216;predefined synchronization configurations&#8217;. In first step of sync-wizard you can select from three options:</p>
<ul>
<li>Working Tree</li>
<li>Remote Tracking</li>
<li>Custom</li>
</ul>
<p><a href="http://luksza.org/wp-content/uploads/2011/05/egit-new-synchronization-wizadrd-page1.png"><img class="aligncenter size-medium wp-image-849" title="egit-new-synchronization-wizadrd-page1" src="http://luksza.org/wp-content/uploads/2011/05/egit-new-synchronization-wizadrd-page1-300x204.png" alt="EGit new synchronization wizard - page 1" width="300" height="204" /></a></p>
<p>After selecting first option you only uncommitted local changes (those that are stager/in index and those that aren&#8217;t). This should help you when you want to review yours changes just before commit or stage some changes.</p>
<p>Second option &#8216;Remote Tracking&#8217; is only available when current branch tracks one of yours remote branches (if it doesn&#8217;t this option is disabled). This option will show you all locally made changes (same as in &#8216;Working Tree&#8217;) but also changes made in commits that occurs in local and remote branch after you started the local one.</p>
<p>Selecting one of those two actions (and selecting the checkbox next to repository name) will enable the &#8216;Finish&#8217; button and you are done with launching synchronization.</p>
<p>In case when at least in one repository the &#8216;Custom&#8217; option is selected, the &#8216;Finish&#8217; button will be disabled, but &#8216;Next &gt;&#8217; should be enabled. In this situation you must go to the next page to setup yours custom synchronization.</p>
<p>On &#8216;custom synchronization step&#8217; you will only see repositories that was chosen to have a custom synchronization. Here you can select source and destination branch and also include or exclude local changes from being shown in synchronization results.</p>
<p><a href="http://luksza.org/wp-content/uploads/2011/05/egit-new-synchronization-wizadrd-page2.png"></a><a href="http://luksza.org/wp-content/uploads/2011/05/egit-new-synchronization-wizadrd-page2.png"><img class="aligncenter size-medium wp-image-850" title="egit-new-synchronization-wizadrd-page2" src="http://luksza.org/wp-content/uploads/2011/05/egit-new-synchronization-wizadrd-page2-300x204.png" alt="EGit new synchronization wizard - page 2" width="300" height="204" /></a></p>
<p>Those changes are currently pending for a review in ours gerrit, but I think that they will be merged into master branch (not they won&#8217;t be included in 0.12 release).</p>
<p>What do you think about such approach for git synchronization? Maybe you see some other &#8216;predefined&#8217; day-to-day synchronization configuration, if yes please let me know!</p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=848" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2011/new-synchronize-wizard-for-egit/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Google announces list of accepted projects in GSoC11</title>
		<link>http://luksza.org/2011/google-announces-list-of-accepted-projects-in-gsoc11/</link>
		<comments>http://luksza.org/2011/google-announces-list-of-accepted-projects-in-gsoc11/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 16:19:46 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[soc11]]></category>
		<category><![CDATA[egit]]></category>
		<category><![CDATA[gsoc11]]></category>
		<category><![CDATA[synchronize view]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=844</guid>
		<description><![CDATA[Almost 24 hours ago Google announces list of accepted projects in this year edition of Google Summer of Code program. In current edition Eclipse Foundation got 17 slots (as you may know from Wayne post). One of this slots was allocated for me (as a student) and Matthias Sohn, the project that we&#8217;ll be working [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="Google Summer of Code 2011" src="http://4.bp.blogspot.com/-kTJuOVbnzss/TbHoJDOwJLI/AAAAAAAAACw/A8KI8CW9By4/s400/GSOC_2011_300x200px_URL.png" alt="Google Summer of Code 2011" width="400" height="266" /></p>
<p>Almost 24 hours ago Google announces list of accepted projects in this year edition of Google Summer of Code program. In current edition Eclipse Foundation got 17 slots (<a href="https://waynebeaton.wordpress.com/2011/04/25/welcome-students/" target="_blank">as you may know from Wayne post</a>). One of this slots was allocated for me (as a student) and Matthias Sohn, the project that we&#8217;ll be working is a continuation of my last year work for EGit project. The project name is &#8220;EGit Synchronize View support part 2&#8243;, if somebody is curious what this project is about you can <a href="https://socghop.appspot.com/gsoc/proposal/review/google/gsoc2011/dariusz_luksza/1" target="_blank">check it on melange&#8217;s</a> (I&#8217;ve made it public). In this proposal I want to address most important <strong>missing</strong> features in current implementation of EGit Synchronization support. If you think that something there is missing pleas <strong>let me know via mail or comments</strong>!</p>
<p>Apart from that I&#8217;m third time GSoC student (<a href="https://socghop.appspot.com/gsoc/org/google/gsoc2011/eclipse" target="_blank">and that Eclipse got 17 slots!)</a> there is another good news for me &#8230; on the list of accepted proposals in Eclipse Foundation there is 6 (six!) student&#8217;s names that looks like there are from Poland! Yeah! 1/3 of Eclipse GSoC students seams to be from Poland, this is really great information! Next great thing is that four projects are mentored by Polish mentors! Great work guys! And good luck <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>And last but not least, as far as I know there is one other student from my university that was accepted in GSoC11. This is some kind of regression comparing to 2010 edition where there were three accepted students. Maybe in next edition this will be improved, we&#8217;ll see.</p>
<p>After announcement the &#8220;community bonding&#8221; time begins &#8230; but not for me since I&#8217;m quite well integrated with EGit community <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  therefore for me the &#8220;coding period&#8221; starts today ;&gt;</p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=844" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2011/google-announces-list-of-accepted-projects-in-gsoc11/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>A year of my contribution into EGit</title>
		<link>http://luksza.org/2011/a-year-of-my-contribution-into-egit/</link>
		<comments>http://luksza.org/2011/a-year-of-my-contribution-into-egit/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 21:03:48 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[egit]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=784</guid>
		<description><![CDATA[Few days ago (exactly 2010-03-16) was a first anniversary of my first contribution into EGit project.  Here is my very simple first patch sent into EGit&#8217;s Gerrit. It only replaces some old type loops with for-each loop, this is how it starts &#8230; Then I implement a tagging dialog, after that Google Summer of Code [...]]]></description>
			<content:encoded><![CDATA[<p>Few days ago (exactly 2010-03-16) was a first anniversary of my first contribution into EGit project.  Here is my very simple <a href="http://egit.eclipse.org/r/#change,362" target="_blank">first patch sent into EGit&#8217;s Gerrit</a>. It only replaces some old type loops with for-each loop, this is how it starts &#8230; Then I implement a tagging dialog, after that Google Summer of Code 2010 comes during with <a href="http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/eclipse/t127230758145" target="_blank">I was implementing Synchronization View</a> support &#8230; and so on.</p>
<p>Now when I&#8217;m looking on my <a href="http://www.ohloh.net/accounts/lock" target="_blank">ohloh account</a> I&#8217;m quite surprised  with my contribution size. Currently it <a href="http://www.ohloh.net/p/egit/contributors/60215441580143" target="_blank">shows 127 commits and almost 18000 code lines changed</a>.  For me those statistics are something that I can be proud of <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>We&#8217;ll see what next year will bring ;&gt;</p>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=784" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2011/a-year-of-my-contribution-into-egit/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic
Database Caching 9/29 queries in 0.039 seconds using disk: basic

Served from: luksza.org @ 2012-05-22 05:01:19 -->
