<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-4241252330993994284</atom:id><lastBuildDate>Thu, 05 Sep 2024 21:17:01 +0000</lastBuildDate><category>eclipse</category><category>git</category><category>software development</category><category>subversion</category><category>conference</category><category>distributed version control</category><category>career</category><category>tools</category><category>groovy</category><category>test driven</category><category>java</category><category>open source</category><category>iOS</category><category>inspirational</category><category>intro</category><category>mac</category><category>maven</category><category>windows</category><title>Loving Software Blog</title><description></description><link>http://jdcarlflip.blogspot.com/</link><managingEditor>noreply@blogger.com (Carlus Henry)</managingEditor><generator>Blogger</generator><openSearch:totalResults>70</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-3265014243193841807</guid><pubDate>Sat, 23 Mar 2013 13:28:00 +0000</pubDate><atom:updated>2013-03-23T09:28:42.446-04:00</atom:updated><title>Having Trouble importing FragmentBasics Project into Eclipse?</title><description>While doing some Android studying, I download the FragmentBasics project to learn more about fragments. &amp;nbsp;After downloading it, I tried to import it into Eclipse. &amp;nbsp;Unfortunately, this did not work. &amp;nbsp;It complained about the project was overlapping with an existing project.&lt;br /&gt;
&lt;br /&gt;
So you don&#39;t spend the time that I did trying to track down how to import the Android Tutorial projects into Eclipse, &lt;a href=&quot;http://stackoverflow.com/questions/4054216/opening-existing-project-from-source-control&quot;&gt;here&lt;/a&gt; is the fix that I found that seems to work.&lt;br /&gt;
&lt;br /&gt;
While I still believe that Eclipse is the Best IDE in the World, it is still software, made by human beings, capable of creating bugs.&lt;br /&gt;
&lt;br /&gt;
Thanks and Happy Coding</description><link>http://jdcarlflip.blogspot.com/2013/03/having-trouble-importing-fragmentbasics.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-3828995348252503523</guid><pubDate>Mon, 01 Oct 2012 12:40:00 +0000</pubDate><atom:updated>2012-10-01T08:40:13.749-04:00</atom:updated><title>Interview with JavaWorld</title><description>Recently, I was given the honor of being &lt;a href=&quot;http://www.javaworld.com/javaworld/jw-09-2012/120926-full-java-life-interviews-carlus-henry.html&quot;&gt;interviewed &lt;/a&gt;by &lt;a href=&quot;http://www.javaworld.com/&quot;&gt;JavaWorld &lt;/a&gt;in a series called The Full Java Life. &amp;nbsp;In this interview I talk about various topics drawing on over 12 years of professional experience with Java and JEE. &amp;nbsp;This interview was a lot of fun, and I thank &lt;a href=&quot;http://xndev.com/&quot;&gt;Matt Heusser&lt;/a&gt; for selecting me for this great opportunity.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.javaworld.com/javaworld/jw-09-2012/images/javalife2-carlus-henry-fig1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://www.javaworld.com/javaworld/jw-09-2012/images/javalife2-carlus-henry-fig1.jpg&quot; width=&quot;218&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
</description><link>http://jdcarlflip.blogspot.com/2012/10/interview-with-javaworld.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-7808970469091853922</guid><pubDate>Sat, 18 Aug 2012 15:56:00 +0000</pubDate><atom:updated>2012-08-18T11:56:55.090-04:00</atom:updated><title>Gmail stopped working on iPhone :- FIXED</title><description>Believe or not, for the past couple of weeks, Gmail has completely stopped working on my iPhone.&amp;nbsp; I have been scouring the internet to try to find out why this happened.&amp;nbsp; Just now, I finally found a solution to the problem.&amp;nbsp; Unfortunately, according to the docs, it is merely a temporary fix, and the issue will resurface again in the future.&amp;nbsp; However, this fix does work [&lt;a href=&quot;http://www.everythingicafe.com/forum/threads/gmail-error-cannot-get-mail.58359/&quot;&gt;1&lt;/a&gt;].&lt;br /&gt;
&lt;br /&gt;
For brevity&#39;s sake, here are the instructions:&lt;br /&gt;
&lt;br /&gt;
1.&amp;nbsp; On your phone, navigate to the following page: &lt;a class=&quot;externalLink&quot; href=&quot;https://www.google.com/accounts/displayunlockcaptcha&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://www.google.com/accounts/displayunlockcaptcha&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2.&amp;nbsp; Now attempt to access you email through the iPhone&lt;br /&gt;
&lt;br /&gt;
Once again, according to the place where I found this information, it appears as though this fix will last for about a couple of months before you have to apply it again.&lt;br /&gt;
&lt;br /&gt;
Pay it forward!!! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] http://www.everythingicafe.com/forum/threads/gmail-error-cannot-get-mail.58359/ </description><link>http://jdcarlflip.blogspot.com/2012/08/gmail-stopped-working-on-iphone-fixed.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-2990543577399766228</guid><pubDate>Mon, 21 May 2012 23:10:00 +0000</pubDate><atom:updated>2012-05-21T19:11:17.659-04:00</atom:updated><title>GRWebDev :- Git 101 / Git-SVN Presentation</title><description>Just completed a presentation at Grand Rapids Web Developer tech group. &amp;nbsp;What an awesome group of folks. &amp;nbsp;I have pushed my presentation to &lt;a href=&quot;https://github.com/chenry/grwebdev-git-101-svn&quot;&gt;Github&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
Carlus</description><link>http://jdcarlflip.blogspot.com/2012/05/grwebdev-git-101-git-svn-presentation.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-8308458622498095908</guid><pubDate>Wed, 09 May 2012 21:32:00 +0000</pubDate><atom:updated>2012-05-09T17:32:19.660-04:00</atom:updated><title>Creating Git Patches for the Git-less</title><description>Recently, I have had to flex my git skills in a way that I have never had to do before. &amp;nbsp;I work for a client that does not use Git as their version control system of choice. &amp;nbsp;They use a product that starts with an &#39;S&#39; and ends with a &#39;VN&#39;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Problem Statement&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
At times, there is code that I need to enhance, however, I do not have write permissions to. &amp;nbsp;If we were using Git, I would simply clone the project, create a branch for the specific feature, and once the feature was completed, have them pull from me. &amp;nbsp;However, this is not possible if the other team members are using SVN. &amp;nbsp;So how do you solve this issue?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Create a patch&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
The way to solve this problem is by creating a patch. &amp;nbsp;This patch cannot be just any patch, it has to be a patch that does not include all of the &quot;Git&quot; information. &amp;nbsp;Instead it is a patch that could be applied by using non-git tools. &amp;nbsp;Here are the instructions for creating such a patch:&lt;br /&gt;
&lt;br /&gt;
1.) &amp;nbsp;Make sure you are on the feature branch where you just added your new feature. &amp;nbsp;For our purposes, we will say that it is feature_123.&lt;br /&gt;
2.) &amp;nbsp;This feature branch, let&#39;s say was created from the master branch.&lt;br /&gt;
3.) &amp;nbsp;In order to create a non-git friendly patch, you would enter the following command: &amp;nbsp;&lt;b&gt;git diff --no-prefix master &amp;gt; feature_123.patch&lt;/b&gt;&lt;br /&gt;
4.) &amp;nbsp;You would then send this patch to someone that does have commit access to the repository. &lt;br /&gt;
5.) &amp;nbsp;They would apply the patch using their Editor of choice, or from the command line enter: &lt;b&gt;patch -p0 &amp;lt; feature_123.patch&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
Happy Coding.</description><link>http://jdcarlflip.blogspot.com/2012/05/creating-git-patches-for-git-less.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-3183295696327333479</guid><pubDate>Wed, 23 Nov 2011 13:46:00 +0000</pubDate><atom:updated>2011-11-23T08:53:44.970-05:00</atom:updated><title>How to open multiple Gmail accounts in Chrome...</title><description>&lt;i&gt;[Although the title of this post relates specifically to Gmail, this feature / functionality can be used for a wide assortment of online applications.]&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;
I love the Google Web Applications, including Gmail, Calendar and Reader. &amp;nbsp;I also manage many Gmail accounts for various reasons. &amp;nbsp;One thing that I find myself doing a lot is switching from one Google Account to another.&lt;br /&gt;
&lt;br /&gt;
Typically, I start my day by logging into my personal Gmail account. &amp;nbsp;However, there are times when I have to create a new appointment using a different Google Account. &amp;nbsp;I used to do the following steps:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Log out of my personal account&lt;/li&gt;
&lt;li&gt;Log into the account that I want to create the appointment in&lt;/li&gt;
&lt;li&gt;Create the appointment&lt;/li&gt;
&lt;li&gt;Log out of that account&lt;/li&gt;
&lt;li&gt;Log back into my personal account&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
I always wished there was a way to stay logged into my own personal account, open a tab, log into the other account and do what needs to be done there, but unfortunately that does not work. &amp;nbsp;If you are already logged into Google, when you open another tab to another Google resource (gmail, calendar...) it keeps you in the same account.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The way around it is to use Chrome&#39;s Incognito mode. &amp;nbsp;If you are logged into a Google account, create a new window in Incognito mode (File -&amp;gt; New Incognito Window). &amp;nbsp;In that window, you can access another Google Resource under a different account, all the while staying in your original account on the first browser window.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This neat little trick was introduced to me by a co-worker, and it has been a real time saver. &amp;nbsp;I hope that it is a timesaver for you as well.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Pay it forward.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;</description><link>http://jdcarlflip.blogspot.com/2011/11/how-to-open-multiple-gmail-accounts-in.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>8</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-4697402797146296525</guid><pubDate>Thu, 17 Nov 2011 20:43:00 +0000</pubDate><atom:updated>2011-11-17T16:24:38.620-05:00</atom:updated><title>What has been keeping me busy...</title><description>Every once in a while, your world gets turned upside down. &amp;nbsp;Someone challenges you to think different, and because of it you will never be the same. &amp;nbsp;After developing software professionally for the past eleven years, I have had the pleasure of being introduced to some new ideas and concepts, that have caused me to rethink how to develop software. &lt;br /&gt;
&lt;br /&gt;
There will be more to come, but I thought I would send out this little teaser of what I have been spending time with.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Disruptor&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Imagine someone suggesting that the way traditional way of scaling and boosting performance by adding more CPUs is not correct. &amp;nbsp;Then imagine this same company that made this suggestion is proving it by processing more than six million orders per second on a single thread. &amp;nbsp;&lt;a href=&quot;http://draft.blogger.com/&quot;&gt;&lt;span id=&quot;goog_74778934&quot;&gt;&lt;/span&gt;LMAX&lt;span id=&quot;goog_74778935&quot;&gt;&lt;/span&gt;&lt;/a&gt; has done just that, but more than that, they have completely open sourced their findings and their Java solution. &amp;nbsp;Wondering how to write your next multi-threaded application? &amp;nbsp;You should definitely give the &lt;a href=&quot;http://code.google.com/p/disruptor/&quot;&gt;disruptor&lt;/a&gt; some attention.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Event Sourcing&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
While learning about the Disruptor, I came across a new term that I had never heard of before, but one that I will never forget. &amp;nbsp;The easiest way to think about Event Sourcing is when you think about your bank account. &amp;nbsp;How does a bank determine your current balance? &amp;nbsp;It rolls up the debits and credits of your account since the beginning of your account. &amp;nbsp;What if we applied this same technique to our data model when developing software? &amp;nbsp;We would be able to look at the system and our data at any point in time. &amp;nbsp;Anyone likes to guess the state of the system at 2 o&#39;clock in the morning after being woken up due to a production issue?&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.infoq.com/presentations/Events-Are-Not-Just-for-Notifications&quot;&gt;Events are not just for notifications&lt;/a&gt;, by &lt;a href=&quot;http://codebetter.com/gregyoung/&quot;&gt;Greg Young&lt;/a&gt;, is a great introduction to Event Sourcing.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;&lt;b&gt;CQRS&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Last, but not least is my current obsession. &amp;nbsp;During Greg Young&#39;s talk, he mentioned something called CQRS. &amp;nbsp;Since I was so impressed with what he had to say about Event Sourcing, I thought I would look up what CQRS is all about. &amp;nbsp;In a nutshell, it is an alternative to N-Tier Software Design (Database Tier, Services Tier, UI Tier). &amp;nbsp;It allows software to be designed and tested with behavior. &amp;nbsp;Grounded in the principles of Domain Driven Design, this architecture has taken me a while to understand, and I am still learning. &amp;nbsp;The implications of what is possible with it, are amazing. &lt;br /&gt;
&lt;br /&gt;
To learn more, I would recommend the following:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.udidahan.com/&quot;&gt;Udi Dahan&#39;s Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://codebetter.com/gregyoung/&quot;&gt;Greg Young&#39;s Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Udi Dahan&#39;s Talk: &amp;nbsp;&lt;a href=&quot;http://www.infoq.com/presentations/Command-Query-Responsibility-Segregation&quot;&gt;Command Query Responsibility Segregation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://distributedpodcast.com/&quot;&gt;Distributed Podcast&lt;/a&gt; - bunch of guys that walk you through what CQRS is and why use it.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/#!forum/dddcqrs&quot;&gt;CQRS Mailing List&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/#!forum/axonframework&quot;&gt;Axon Framework Mailing List&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
If you would like to get your feet wet in what it would be like to develop software using these principles, I would highly recommend the &lt;a href=&quot;http://code.google.com/p/axonframework/&quot;&gt;Axon Framework&lt;/a&gt;. &amp;nbsp;I have been using it for a month now, and it is great. &amp;nbsp;Not to mention the documentation is outstanding and the responses that I have received on the mailing list has been wonderful.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So, that is what has been keeping me busy.....there will definitely be more to come, but I thought I would offer this as a primer before digging in too deep.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;</description><link>http://jdcarlflip.blogspot.com/2011/11/what-has-been-keeping-me-busy.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-3346408759901628461</guid><pubDate>Tue, 11 Oct 2011 19:08:00 +0000</pubDate><atom:updated>2011-10-11T15:08:06.438-04:00</atom:updated><title>Use compile errors like bookmarks....</title><description>I have started a new practice and it is really working out great!!! &amp;nbsp;I am using compiler errors as my means of knowing where I left off on a certain task. &amp;nbsp;For example, it is 4:45, and my wife is cooking a mean meal (by &quot;mean&quot;, I am saying that if I don&#39;t get home on time, then she is going to be very &lt;b&gt;mean&lt;/b&gt;&amp;nbsp;to me for the rest of the night). &amp;nbsp;I don&#39;t have time to fix all of the compiler errors so I just check it in to version control. &amp;nbsp;That way, when I come back to work in the morning, or after the weekend, I know just where I need to start again.&lt;br /&gt;
&lt;br /&gt;
The best part of this new process, is that none of my co-workers mind. &amp;nbsp;At all. &amp;nbsp;They don&#39;t care one bit. &amp;nbsp;They actually do not think that it impedes on our Test Driven Development practices or our Continuous Integration Builds......amazing, eh?&lt;br /&gt;
&lt;br /&gt;
How am I getting away with this new process of mine? &amp;nbsp;If you haven&#39;t guessed it by now, it is because I am using Git. &amp;nbsp;My checkins that I do where things don&#39;t compile, are only checked in locally to a branch on my computer. &amp;nbsp;The rest of the team doesn&#39;t see these compiler errors, and therefore, they are never affected.&lt;br /&gt;
&lt;br /&gt;
Just one more reason why you should look at distributed version control - no more &quot;mean&quot; dinners for me.&lt;br /&gt;
&lt;br /&gt;
:)</description><link>http://jdcarlflip.blogspot.com/2011/10/use-compile-errors-like-bookmarks.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-4688092777840710343</guid><pubDate>Wed, 27 Jul 2011 11:26:00 +0000</pubDate><atom:updated>2011-07-27T07:26:45.348-04:00</atom:updated><title>Groovy / Grails Training</title><description>Today begins the second day of a four day &lt;a href=&quot;http://groovy.codehaus.org/&quot;&gt;Groovy&lt;/a&gt; / &lt;a href=&quot;http://grails.org/&quot;&gt;Grails&lt;/a&gt; training class that &lt;a href=&quot;http://sagetech-llc.com/&quot;&gt;we&lt;/a&gt; are giving to &lt;a href=&quot;http://gvsu.edu/&quot;&gt;Grand Valley State University&lt;/a&gt;. This is the second time that I have given this training and I couldn&#39;t have asked for a greater class. &amp;nbsp;The students are experienced, energetic and fun. &amp;nbsp;During the Object Oriented Analysis and Design portion of the class, they came up with solutions to the workshops that were very creative and interesting.&lt;br /&gt;
&lt;br /&gt;
Today we will complete the &lt;a href=&quot;http://groovy.codehaus.org/&quot;&gt;Groovy&lt;/a&gt; portion of the training. &amp;nbsp;We are going to review:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Collections&lt;/li&gt;
&lt;li&gt;Closures&lt;/li&gt;
&lt;li&gt;Groovy Sql&lt;/li&gt;
&lt;li&gt;Testing&lt;/li&gt;
&lt;li&gt;Meta Object Programming&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
The remainder of the week, we will be discussing Grails and the various technologies that make up the Grails framework.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you or your team is interested in Groovy / Grails Training, feel free to contact us.&lt;/div&gt;
</description><link>http://jdcarlflip.blogspot.com/2011/07/groovy-grails-training.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-8484092788320175799</guid><pubDate>Mon, 02 May 2011 13:30:00 +0000</pubDate><atom:updated>2011-05-02T09:30:24.667-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">distributed version control</category><category domain="http://www.blogger.com/atom/ns#">git</category><category domain="http://www.blogger.com/atom/ns#">open source</category><category domain="http://www.blogger.com/atom/ns#">software development</category><category domain="http://www.blogger.com/atom/ns#">subversion</category><category domain="http://www.blogger.com/atom/ns#">tools</category><title>Git and Subversion :- New Subversion Branch Created</title><description>If you have read any of my previous blog posts before, you know that I am use Git in order to track Subversion repositories.  Recently, I had another experience that I had to resolve and I wanted to make sure that I share it with you.&lt;br /&gt;
&lt;br /&gt;
The team decided to cut a branch of the code that I have been tracking.  After they did that, I ran &lt;b&gt;git svn fetch&lt;/b&gt;.  After doing this, Git realized that a new branch was created and it started to search through the subversion repository to pull back any history that it might not have.&lt;br /&gt;
&lt;br /&gt;
This probably is a good idea, if I were tracking the entire Subversion history, but I am not.  The result was Git was starting to pull back history that I didn&#39;t have in my Git repo, nor history that I wanted.  It would have taken hours to pull in that amount of history, and as I mentioned, I was not interested in retaining the whole entire repository.&lt;br /&gt;
&lt;br /&gt;
In order to resolve this, I performed the following command:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;git svn fetch -r&lt;START_REVISION_ID&gt;:HEAD --no-follow-parent&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I think that the most important part of this command is the &lt;b&gt;--no-follow-parent&lt;/b&gt;.  This tells git not to look back in time at the history, and just pull in the information from the specified starting point.&lt;br /&gt;
&lt;br /&gt;
I hope that this helps someone else out there....&lt;br /&gt;
&lt;br /&gt;
Pay it forward.</description><link>http://jdcarlflip.blogspot.com/2011/05/git-and-subversion-new-subversion.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-6162516206706383087</guid><pubDate>Thu, 14 Apr 2011 13:01:00 +0000</pubDate><atom:updated>2011-04-14T09:01:39.663-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">distributed version control</category><category domain="http://www.blogger.com/atom/ns#">git</category><category domain="http://www.blogger.com/atom/ns#">tools</category><title>Git Push :- Only Current Branch</title><description>Recently, when sharing a bare repository on my machine with one of the members on my team, we ran into a funny scenario.  But first, it is probably worth mentioning the following information:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;We are currently using git to push to svn&lt;/li&gt;
&lt;li&gt;We have a master branch that is tracking the svn/trunk&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
I created a new &lt;i&gt;bare&lt;/i&gt; repository that will allow us work together on a specific task.  When using Git, you only want to push into a bare repository (a repo without a working directory), instead of the real one.  He was able to pull the code just fine, but when he tried to push the changes into the bare repository, not only did it try to push the branch that we were currently working on, but it also tried to push the &lt;b&gt;master&lt;/b&gt; branch as well.  That is because the bare repository that I created, had a master branch, and so did his local, and therefore it was matching on that branches name.  (Note: I was also experiencing this same behavior).&lt;br /&gt;
&lt;br /&gt;
After &lt;i&gt;Googling&lt;/i&gt; for an answer to the behavior and hoping to get the desired behavior of only pushing the changes from the branch that I am currently on, I found &lt;a href=&quot;http://stackoverflow.com/questions/948354/git-push-current-branch&quot;&gt;git push current branch&lt;/a&gt;, on StackOverflow.  If you are like me, and want the desired behavior of only pushing the current branch that you are on to the remote repository, and not all of the branches, just run the following command in your git repository:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;git config push.default tracking&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
There are other options besides &#39;tracking&#39; but this is giving me the desired behavior that I was looking for...&lt;br /&gt;
&lt;br /&gt;
Enjoy...</description><link>http://jdcarlflip.blogspot.com/2011/04/git-push-only-current-branch.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-1183143253263442518</guid><pubDate>Tue, 12 Apr 2011 12:41:00 +0000</pubDate><atom:updated>2011-04-12T08:41:15.741-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">distributed version control</category><category domain="http://www.blogger.com/atom/ns#">git</category><category domain="http://www.blogger.com/atom/ns#">software development</category><category domain="http://www.blogger.com/atom/ns#">subversion</category><category domain="http://www.blogger.com/atom/ns#">tools</category><title>Git and Subversion :- Bringing others on board...</title><description>In the previous post, &lt;a href=&quot;http://jdcarlflip.blogspot.com/2010/04/pulling-subversion-repository-into-git.html&quot;&gt;Pulling a Subversion Repository into Git Locally&lt;/a&gt;, I shared the process that I went through in order to pull Subversion into Git so that I can start using Git locally with Subversion as my remote repository.  Since that time, I have been trying to figure out the best way to get Git to Subversion repositories set up for others on my team.  I have gone through a lot of trial and error and now I believe that I have finally come up with an easy step-by-step solution.&lt;br /&gt;
&lt;br /&gt;
Before I begin, let me first say that you probably want to follow these instructions for two main reasons:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cloning a Subversion Repository is very time consuming&lt;/b&gt;&lt;br /&gt;
If you have never cloned a Subversion repository using Git, you will be amazed at how long this process can take (depending on how much history you want in Git).  I typically chose 1000 revisions in the past, and that could take up to an hour or more.  This is no fault of Git, instead, Subversion is to blame.  With this process, only one person has to incur that time investment.  Everyone else, can just reap the benefits without the hassle&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Fetching too much data&lt;/b&gt;&lt;br /&gt;
This was the problem that has stumped me for months.  While I was able to alleviate the first challenge of the time investment for everyone, I could not figure out why Git was trying to retrieve so much history from Subversion.  This amount of history was even earlier than the 1000 revisions of the initial clone.  Finally, I figured out that it has to do with a property called &lt;b&gt;branches-maxRev&lt;/b&gt;.  Through the use of this property, we can make sure that when you perform &lt;b&gt;git svn fetch&lt;/b&gt;, that it will not attempt to retrieve any more history than necessary.  So, let&#39;s get started&lt;br /&gt;
&lt;br /&gt;
By this time, I am already assuming that you have followed the directions from &lt;a href=&quot;http://jdcarlflip.blogspot.com/2010/04/pulling-subversion-repository-into-git.html&quot;&gt;Pulling a Subversion Repository into Git Locally&lt;/a&gt;, and you already have a Git repository with the amount of history from Subversion that you desire.  From that point:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Navigate to your git repo.  Not the .git folder, but the folder containing that folder&lt;/li&gt;
&lt;li&gt;Open your browser to the &lt;a href=&quot;http://www.kernel.org/pub/software/scm/git/docs/git-svn.html&quot;&gt;git svn man page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Scroll to the bottom section titled &lt;b&gt;Basic Examples&lt;/b&gt;, and look at the third example&lt;/li&gt;
&lt;li&gt;Locally, start the git daemon server by typing: git daemon.  This will start a git server on your local machine that will allow others to pull from you.&lt;/li&gt;
&lt;li&gt;Follow the instructions from the Basic Example starting with &lt;b&gt;mkdir&lt;/b&gt; all the way to the end.  Please note that the line that section that says &lt;b&gt;server:/pub/project&lt;/b&gt; must be replaced with a valid git url (for instance git://jdcarlflip.blogspot.com/path/to/git/repo)&lt;/li&gt;
&lt;li&gt;Once you have finished those instructions, in your newly created repo, open the file .git/svn/.metadata&lt;/li&gt;
&lt;li&gt;Inside of there, you want to put a line under the uuid similar to the following &lt;b&gt;branches-maxRev = 11111&lt;/b&gt; where 11111 is the revision number that you do not want to go past.  If you don&#39;t know what to put in there, look back at your original repo that you cloned from, and use the same number.&lt;/li&gt;
&lt;li&gt;After you have done this, type in git svn fetch, and it should not attempt to retrieve any revisions that are older than the ones you have already&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
If there are any questions, please let me know.....Enjoy.</description><link>http://jdcarlflip.blogspot.com/2011/04/git-and-subversion-bringing-others-on.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-1341323733659205368</guid><pubDate>Fri, 25 Feb 2011 02:15:00 +0000</pubDate><atom:updated>2011-02-24T21:15:07.040-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">conference</category><category domain="http://www.blogger.com/atom/ns#">iOS</category><title>Mobile Dev Day :- iOS Development</title><description>This past weekend, I had the wonderful experience of going to &lt;a href=&quot;http://mobidevday.com/&quot;&gt;MobiDevDay&lt;/a&gt; Conference that was held in my hometown, downtown Detroit.  It was an amazing conference, and a big thank you to all of the work and effort that went into making it such an excellent and wonderful experience.&lt;br /&gt;
&lt;br /&gt;
Since I am familiar with the concepts of Android development, I decided to spend some time looking at what it takes in order to develop an iOS application.  I have never, ever seen what Objective-C even looks like, before this conference, and I am glad that I made the decision to look at it.&lt;br /&gt;
&lt;br /&gt;
....fast forward to yesterday....&lt;br /&gt;
I was having lunch with a friend of mine, who is a polygot programmer.  He told me about a wonderful FREE series on iTunesU from Stanford University that really helped him learn how to develop Objective-C.&lt;br /&gt;
&lt;br /&gt;
If you are interested, here is the &lt;a href=&quot;http://itunes.stanford.edu/&quot;&gt;iTunes link&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Enjoy....</description><link>http://jdcarlflip.blogspot.com/2011/02/mobile-dev-day-ios-development.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-7385893190743497315</guid><pubDate>Fri, 09 Jul 2010 18:56:00 +0000</pubDate><atom:updated>2010-07-09T14:56:25.117-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">git</category><title>Git feeling a little sluggish....?</title><description>So after working in my Git repository for the past couple of months, I started to notice that things are starting to run slower.  I remember the days when I first started using Git, it was lightening fast.  Now, it is still fast....but I have been missing the lightening.&lt;br /&gt;
&lt;br /&gt;
That is until I was told about the command&lt;br /&gt;
&lt;br /&gt;
git gc --aggressive&lt;br /&gt;
&lt;br /&gt;
This command has brought the lightening back to fast in git.&lt;br /&gt;
&lt;br /&gt;
Share and Enjoy.</description><link>http://jdcarlflip.blogspot.com/2010/07/git-feeling-little-sluggish.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-1808330586403751268</guid><pubDate>Wed, 28 Apr 2010 16:24:00 +0000</pubDate><atom:updated>2010-04-28T12:24:10.496-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">git</category><title>Git and Removing Empty Directories</title><description>So, I encountered a very interesting annoyance yesterday with Git.&amp;nbsp; I can&#39;t say that it was a problem since it is working as designed, and there is a solution.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
I am tracking 7 different branches of Subversion in Git.&amp;nbsp; What is really interesting, is that I actively work on most, if not all of those branches.&amp;nbsp; When switching back and forth between branches, as you can imagine, there are some branches that has folders and code that other branches do not.&lt;br /&gt;
&lt;br /&gt;
Git, by design, does not track folders.&amp;nbsp; The side effect of this is that when I am working on Branch A that has a folder F, then I checkout Branch B, which does not have folder F, that folder F still remains.&amp;nbsp; This is minor but it can quickly become very annoying especially when working in Java and there are a ton of empty packages (folders) in your source directory.&amp;nbsp; So what do you do...?&lt;br /&gt;
&lt;br /&gt;
There is a command that will clean up all of the files that are not part of your git repository - including the folders.&amp;nbsp; This command is:&lt;br /&gt;
&lt;br /&gt;
git clean -fd&lt;br /&gt;
&lt;br /&gt;
Keep in mind, that any files or folders that are not part of the git repository will be removed when you issue this command.&amp;nbsp; If instead, you would like to do a dry run and see what exactly would be deleted prior to actually deleting them, you can run&lt;br /&gt;
&lt;br /&gt;
git clean -fdn&lt;br /&gt;
&lt;br /&gt;
Happy Coding...</description><link>http://jdcarlflip.blogspot.com/2010/04/git-and-removing-empty-directories.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-3624918636037599685</guid><pubDate>Mon, 26 Apr 2010 14:22:00 +0000</pubDate><atom:updated>2010-04-26T10:40:03.920-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">git</category><category domain="http://www.blogger.com/atom/ns#">subversion</category><title>Git / Subversion :- Retrieving an Old Branch</title><description>When I first started using Git and Subversion together, I decided that I didn&#39;t want the entire Subversion repository on my machine.  Instead of cloning the entire Subversion repository, I cloned the last 1000 revisions.  This has been working very well for me until today.&lt;br /&gt;&lt;br /&gt;Today, we discovered a defect on a branch that was created and deployed well before the starting point in Subversion that I decided to clone from.  If instead, the branch was created within the last 1000 revisions, I would have had that branch in my local Git repository.  I could have checked that branch out, created a tracking branch, made the necessary code changes, merged it back into the master and sent it upstream to Subversion.  But, this was not the case.  The Subversion branch that needed code change was not in my local Git repository.  How would I get it in there?&lt;br /&gt;&lt;br /&gt;After doing some browsing on the internet, I think I came up with a solution that was inspired by a blog post titled &lt;a href=&quot;http://simeonpilgrim.com/blog/2009/11/17/complex-svn-repository-conversion-to-git/&quot;&gt;Complex SVN repository conversion to Git&lt;/a&gt;, by Simeon Pilgrim.  While Simeon was not dealing with the same problem that I was dealing with, the solution that he used for his situation could easily be molded to help me with mine.&lt;br /&gt;&lt;br /&gt;What I ended up doing was hand modifying the config file that is located within the .git directory in the repository.  I added another remote Subversion repository entry.  This entry was just going to be used to track the one branch.  Here are the details of that entry:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[svn-remote &quot;0.5.0&quot;]&lt;br /&gt;       url = http://subversion.sagetech.com/svn/somethingReallyCool/branches&lt;br /&gt;       fetch = 0.5.0:refs/remotes/svn/0.5.0&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;This entry above is telling Git that I have a remote Subversion repository that will be aliased as 0.5.0.  It also tells Git the URL of the repository as well as the path that should be used for fetching.  The fetch actually specifies two paths separated by a colon in the following format &quot;origin:destination&quot;.  This line is saying that it will pull the code that resides in...&lt;br /&gt;&lt;code&gt;&lt;br /&gt;http://subversion.sagetech.com/svn/somethingReallyCool/branches/0.5.0&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;and put it into the Git remote branch at refs/remotes/svn/0.5.0.&lt;br /&gt;&lt;br /&gt;After this entry was made into the .git/config file, all that was left to do was to fetch the code.  That was done with the following command:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;git svn fetch -r1200:HEAD 0.5.0&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;This fetched from the Subversion branch 0.5.0 into my Git Remote branch all of the revisions starting at 1200, and allowed me to fix the defect and publish back to the 0.5.0 branch.&lt;br /&gt;&lt;br /&gt;Happy Coding</description><link>http://jdcarlflip.blogspot.com/2010/04/git-subversion-retrieving-old-branch.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-4090718932515164681</guid><pubDate>Mon, 19 Apr 2010 16:09:00 +0000</pubDate><atom:updated>2010-04-19T12:29:43.345-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">git</category><category domain="http://www.blogger.com/atom/ns#">subversion</category><title>Git Revert to the Rescue...</title><description>Once again, Git has saved yours truly.&lt;br /&gt;&lt;br /&gt;One of my current responsibilities is to merge a branch within Subversion to the main code line (trunk).  Usually, this doesn&#39;t require a lot of effort in order to complete.  For this merge, since there were relatively few changes, I decided to perform the merge using the command line.&lt;br /&gt;&lt;br /&gt;I specified my range of revisions that I would like merged down to the trunk, resolved all of the conflicts, and then committed the merge to Subversion.  Later, I realized that I did not specify the correct range of revisions, and therefore, the merge was incomplete.  I was just about to revert my changes in the Subversion repository, when I realized that there had been some commits done to the trunk after my merge.  Doh!!!&lt;br /&gt;&lt;br /&gt;Why is this such a problem?  Well, it is a problem because if I was to roll back the Subversion repository to the point right before the incomplete merge that I performed, then I would also be removing the commits of my teammates.  That would not make me too popular amongst my co-workers.  &lt;br /&gt;&lt;br /&gt;At this point, what could I do? One option would be to take the commit that occurred after my incomplete merge and save it off somehow using a patch tool, then roll back the subversion repository, then reapply those changes.  Another option would be to figure out all of the changes that I made as part of my incomplete merge, and roll each file back one by one to the previous version.  Both of these options sounded horrible and time consuming.  Luckily, I could use Git in order to solve this problem.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Git Revert to the Rescue&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Git has a great feature called revert.  In a nutshell, the revert feature of Git allows you to specify any commit, create a reverse-patch for that commit, and commit it to the repository using one command.  In other words, it backs out the changes of a commit.  For example, let&#39;s say that your repository has the following 4 commits:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;A-B-C-D&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;You realize that there is a bug in the commit titled &#39;B&#39;, and you would like to roll the code back.  You can do that using Git by typing&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;git revert B&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;which would change your repository to:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;A-B-C-D-E&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The commit titled &#39;E&#39;, is actually a reversal of the commit B.&lt;br /&gt;&lt;br /&gt;Needless to say, this little trick saved me a lot of time and effort.  All I did was revert the merge commit, and attempted the merge again, this time making sure that I specified the correct range of revisions.  For this little feature alone, I am grateful that I am using git.&lt;br /&gt;&lt;br /&gt;Happy Coding</description><link>http://jdcarlflip.blogspot.com/2010/04/git-revert-to-rescue.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-3409507682026354303</guid><pubDate>Fri, 16 Apr 2010 15:57:00 +0000</pubDate><atom:updated>2010-04-16T11:57:25.527-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">git</category><category domain="http://www.blogger.com/atom/ns#">subversion</category><title>Git :- Unrealized Productivity Gain</title><description>After showing a co-worker my workflow using Git integrated with Subversion, he pointed out a productivity gain that I am getting that I have been taking for granted.&lt;br /&gt;
&lt;br /&gt;
When I was using Subversion, I would have multiple directories that would represent different code lines.  I had a directory for the trunk, and a directory for each of the branches of code for our code base.  On top of that, when I wanted to work in one of the other code lines, I would have to restart my IDE, and then point it to the correct code line.  This did not take too long to do, however, considering the amount of times I jump between code lines, it was definitely time that was not well spent.&lt;br /&gt;
&lt;br /&gt;
Using Git, I now only have one directory with all of my code.  If I want to switch to a different branch, then all I have to do is perform a checkout of that branch, and refresh the code in my IDE.  Simple, elegant, fast and effective.&lt;br /&gt;
&lt;br /&gt;
Yet another reason why I am loving Git.</description><link>http://jdcarlflip.blogspot.com/2010/04/git-unrealized-productivity-gain.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-6506228514900259764</guid><pubDate>Wed, 14 Apr 2010 01:50:00 +0000</pubDate><atom:updated>2010-04-13T21:50:00.670-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">distributed version control</category><category domain="http://www.blogger.com/atom/ns#">git</category><category domain="http://www.blogger.com/atom/ns#">subversion</category><title>Pulling a Subversion Repository Into Git Locally</title><description>Over the past month, I have really enjoyed using Git with Subversion.  However, when I was thinking about how I got Git all setup to access Subversion, I realized that I can&#39;t remember exactly how I did it.  So in the interest of remembering how to get Git setup to work with Subversion, I am writing this post for myself and anyone else who is interested in using Git in a Subversion environment.  &lt;br /&gt;
&lt;br /&gt;
After installing Git, you are going to want to determine the URL of the Subversion repository that you are going to want to integrate with.  For our purposes, let&#39;s use the Open Source project &lt;a href=&quot;http://appfuse.org/display/APF/Home&quot;&gt;AppFuse&lt;/a&gt;, whose Subversion repository is hosted at https://appfuse.dev.java.net/svn/appfuse/trunk.&lt;br /&gt;
&lt;br /&gt;
First thing to do is to clone the repository to your machine.  This process of cloning is what is going to convert the Subversion repository into a local Git one.  At this point, I am not interested in cloning the entire repository (all of the branches, tags).  I am also not interested in cloning all of the revisions (at the time of this blog post, their Subversion repository is on revision 3333).  Instead, I only want to clone the trunk with the past 100 revisions.  Here is the command necessary to do just that:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
git svn clone https://appfuse.dev.java.net/svn/appfuse -r3330:HEAD --prefix=svn/ -T trunk -b branches -t tags appfuse.git&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
(You can choose to omit the -T, -b, and -t options, if you so desire.  We can always add those details later.)&lt;br /&gt;
&lt;br /&gt;
If you are prompted for a user id and password, use the account &#39;guest&#39; without a password.&lt;br /&gt;
&lt;br /&gt;
During the cloning process you are going to notice that git is actually mapping the 100 commits in Subversion to a Git commit object in your local repository.  As you might imagine, this process could take a very long time, depending on how many revisions you are cloning into your local repository.  &lt;br /&gt;
&lt;br /&gt;
After your clone has completed, you should have a directory called appfuse.git.  Move to that directory and type the following&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
git log -3 --stat&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
This will show the last three revisions that have been made to this source code.  The first commit looks like this:&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;
Author: mraible &lt;mraible@2aeb74e6-0f1c-0410-991c-92d95bb9df37&gt;
Date:   Sat Feb 27 15:54:03 2010 +0000

    Turn off EhCache update checking.
    
    git-svn-id: https://appfuse.dev.java.net/svn/appfuse/trunk@3333 2aeb74e6-0f1c-0410-991c-92d95bb9df37

 web/common/src/main/resources/ehcache.xml |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
&lt;/code&gt;&lt;/pre&gt;The most interesting thing about this log is the fact that you can tell what Subversion revision it came from by the line that begins with git-svn-id.  You can see that it comes from the revision 3333.  There are many other features of git log that I am not going to talk about, but do encourage you to look into.&lt;br /&gt;
&lt;br /&gt;
Congratulations, you have successfully pulled the Subversion repository into Git locally.  In the next couple of blog posts, I will spend some time discussing how to commit changes back to the repository, as well as how to track and commit to branches in Subversion.&lt;br /&gt;
&lt;br /&gt;
Happy Coding.</description><link>http://jdcarlflip.blogspot.com/2010/04/pulling-subversion-repository-into-git.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-8167362369214656118</guid><pubDate>Tue, 13 Apr 2010 01:02:00 +0000</pubDate><atom:updated>2010-04-12T21:39:51.364-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">distributed version control</category><category domain="http://www.blogger.com/atom/ns#">git</category><title>Git Interactive Adding...now you tell me...</title><description>First off, major thanks to &lt;a href=&quot;http://schacon.github.com/&quot;&gt;Scott Chacon&lt;/a&gt; and his video post on how to do &lt;a href=&quot;http://www.gitcasts.com/posts/interactive-adding&quot;&gt;Interactive Adding&lt;/a&gt; in Git.  Unfortunately, I am only now getting a chance to review this video, since it was crunch time at work today...&lt;br /&gt;&lt;br /&gt;I spent most of the day today hunting down a defect.  This defect was a good one.  You know the kind.  The kind that really stretches your brain and gives you a chance to flex your skills as a Software Developer.  Of course, as always, there was a logical explanation for the erroneous behavior that we were seeing, however, it took quite a lot of time, and a lot of &lt;a href=&quot;http://www.artima.com/intv/tracer.html&quot;&gt;Tracer Bullets&lt;/a&gt;, in order to find the problem.  After finding the problem, we made the appropriate code changes...I love team coding...and then I wanted to commit those changes.  This is where &lt;a href=&quot;http://www.gitcasts.com/posts/interactive-adding&quot;&gt;Interactive Adding&lt;/a&gt; in Git would have helped out a ton...&lt;br /&gt;&lt;br /&gt;I wasn&#39;t interested in committing all of those tracer bullets, instead, all I wanted to commit was the actual fix.  Using interactive adding, I could have staged the changes that actually fixed the issue in one commit, and then I could have added the Tracer Bullets as another commit.  Since these were separate commits, I could have then switched back to my master branch, and &lt;a href=&quot;http://www.gitready.com/intermediate/2009/03/04/pick-out-individual-commits.html&quot;&gt;cherry picked&lt;/a&gt; the commit that had the fix in it.  (Remember, I do not develop on the master branch and instead choose to merge in changes from other branches once I have completed development and testing).  This would have resulted in a very nice and clean fix to the master branch.&lt;br /&gt;&lt;br /&gt;Unfortunately, since I am not yet the git slinger that I aspire to be, I had to commit the tracer bullets and the fix underneath the same commit and merge all of those changes down to the master branch.  So, I have a little code clean up to do...doh!!!  &lt;br /&gt;&lt;br /&gt;After watching Scott&#39;s video, I am more confident in my interactive adding git skills, and I look forward to using them the next time I want to selective commit a portion of my changes.&lt;br /&gt;&lt;br /&gt;Happy Coding...</description><link>http://jdcarlflip.blogspot.com/2010/04/git-interactive-addingnow-you-tell-me.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-1015800578695903650</guid><pubDate>Thu, 08 Apr 2010 19:48:00 +0000</pubDate><atom:updated>2010-04-08T17:25:12.908-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">distributed version control</category><category domain="http://www.blogger.com/atom/ns#">git</category><category domain="http://www.blogger.com/atom/ns#">subversion</category><title>Distributed Version Control Systems.....how I love thee...</title><description>Today, I was working with a developer at his station and we made some changes to some code.  I asked if he could commit those changes, and he told me that he was not ready to commit those changes because he had made changes elsewhere in the system and those other changes were not yet ready.  This reminded me of why I have made the switch to using Distributed Version Control.&lt;br /&gt;&lt;br /&gt;You see, when you are using Distributed Version Control Systems, you can adjust your workflow in such a way that you do not run into these types of scenarios.  With the advantage of creating branches of code locally, you can work on completely different efforts simultaneously.  Currently I have 7 different branches that reside locally for one of my customers.  This allows me to switch between different efforts that are currently underway.  More than that, since I am using Git, I am able to synchronize with my customer&#39;s Subversion repository and delivery the changes that I want to delivery and retain the ones that I don&#39;t.&lt;br /&gt;&lt;br /&gt;To illustrate the advantage of using DVCS, let&#39;s take the scenario I mentioned earlier.  A developer approaches me and asks me for some help and would like to pair program a specific feature.  I am smack dab in the middle of working on something (I mean the code doesn&#39;t even compile).  Since I am using Git, I am able to commit this code that doesn&#39;t compile and create a new local branch based on the trunk of the source code that is in Subversion.  I realize committing code that doesn&#39;t compile is a big NO-NO, but I believe that helping your co-workers / customers is much more important (besides, I would only be committing those changes locally, and not pushing them to Central repository anyways).  Now the code that resides on my machine looks exactly like the code that is in the repository.  We make the necessary code changes, I commit them locally to my local repository and push them back up to Subversion.  My co-worker / customer goes on his merry way, and I switch back to the branch that I was working on when they came over for assistance.&lt;br /&gt;&lt;br /&gt;DVCS...it is a beautiful thing...</description><link>http://jdcarlflip.blogspot.com/2010/04/distributed-version-control-systemshow.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-3948440563535390683</guid><pubDate>Wed, 07 Apr 2010 18:40:00 +0000</pubDate><atom:updated>2010-04-07T14:41:16.756-04:00</atom:updated><title>I Love the Library...</title><description>Yet another reason why I love the library...&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://blog.kdl.org/wp-content/uploads/2010/04/main-mango-logo.gif&quot;/&gt;&lt;br /&gt;&lt;i&gt;Kent District Library has added Mango Languages to its growing list of patron resources. Mango is free to all KDL cardholders, and is an easy, effective way to learn to speak a foreign language. Mango is available in two versions&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://blog.kdl.org/?p=1410&quot;&gt;Read complete story&lt;/a&gt;</description><link>http://jdcarlflip.blogspot.com/2010/04/i-love-library.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-2347980180547970200</guid><pubDate>Fri, 02 Apr 2010 12:34:00 +0000</pubDate><atom:updated>2010-04-02T08:34:48.627-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><title>Coming back to my senses...</title><description>In case someone happens upon my last post not realizing that it was April Fools Day, I just want to take a quick moment to clear the air...&lt;br /&gt;
&lt;br /&gt;
I think that Java/JVM is one of the most fascinating language / technology of today.  There is an incredible amount of innovation happening in the arena, and I don&#39;t forsee this changing anytime soon.  There has been plenty of other languages out there whose claims of being the &quot;Java Killer&quot;, has been proven false over time.  I am not knocking those other languages - there are some very attractive features of those languages.  I am just acknowledging the fact that after those claims, Java/JVM is still around.  Not to mention there are plenty of companies who have an incredibly amount invested in the Java/JVM technology.&lt;br /&gt;
&lt;br /&gt;
For these reasons and more, I think that Java is going to be around for quite a while.</description><link>http://jdcarlflip.blogspot.com/2010/04/coming-back-to-my-senses.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-3428690840732234203</guid><pubDate>Thu, 01 Apr 2010 17:23:00 +0000</pubDate><atom:updated>2010-04-01T13:23:11.558-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">career</category><category domain="http://www.blogger.com/atom/ns#">java</category><title>Goodbye Java....</title><description>That&#39;s right.  I am done.  Finished.  The game is over.  &lt;br /&gt;
&lt;br /&gt;
I have finally decided to put my Java &quot;badge of shame&quot; down.  I mean, let&#39;s face it, Java is not the Mercedes of Programming Languages anymore.  There hasn&#39;t been a lot of innovation going on in the Java / JVM space for years now.  I need to start working in a technology that is more relevant to the needs of my customers of today and tomorrow.&lt;br /&gt;
&lt;br /&gt;
I just can&#39;t believe that I have wasted this much time of my career in Java.  So to all, wish me luck as I venture on a new path in development, away from Java...</description><link>http://jdcarlflip.blogspot.com/2010/04/goodbye-java.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4241252330993994284.post-2414387200226011864</guid><pubDate>Fri, 08 Jan 2010 19:24:00 +0000</pubDate><atom:updated>2010-01-08T14:24:12.957-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">eclipse</category><title>Eclipse Templates:  Commons Logging</title><description>For mostly my own benefit, but if you gain something out of this...awesome!!!&lt;br /&gt;
&lt;br /&gt;
Here is a template that I use in Eclipse and I always have to recreate the syntax for when at another developer&#39;s workstation....&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;&quot;&gt;&lt;code&gt;
private static final Log logger = LogFactory.getLog(${primary_type_name}.class);
${:import(org.apache.commons.logging.Log,org.apache.commons.logging.LogFactory)}
&lt;/code&gt;&lt;/pre&gt;</description><link>http://jdcarlflip.blogspot.com/2010/01/eclipse-templates-commons-logging.html</link><author>noreply@blogger.com (Carlus Henry)</author><thr:total>1</thr:total></item></channel></rss>