<?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/"
	>

<channel>
	<title>soledad penadés &#187; workflow</title>
	<atom:link href="http://soledadpenades.com/tag/workflow/feed/" rel="self" type="application/rss+xml" />
	<link>http://soledadpenades.com</link>
	<description>repeat 4[fd 100 rt 90]</description>
	<lastBuildDate>Wed, 25 Apr 2012 21:10:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>My Git workflow</title>
		<link>http://soledadpenades.com/2009/12/18/my-git-workflow/</link>
		<comments>http://soledadpenades.com/2009/12/18/my-git-workflow/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 12:41:29 +0000</pubDate>
		<dc:creator>sole</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://soledadpenades.com/?p=2333</guid>
		<description><![CDATA[I first attempted to use Git almost a year ago. I tried to use it as a kind of rsync&#8217;er between computers for my personal projects+data folder. It didn&#8217;t work too well: I think it was primarily built with the idea of versioning and syncing source files, not thousands of WAV sample files scattered around [...]]]></description>
			<content:encoded><![CDATA[<p>I first attempted to use Git almost a year ago. I tried to use it as a kind of rsync&#8217;er between computers for my personal projects+data folder. It didn&#8217;t work too well: I think it was primarily built with the idea of versioning and syncing source files, not thousands of WAV sample files scattered around thousands of nested folders. So I left &#8220;Start using Git&#8221; in my to-do list and almost forgot about it.</p>
<p>Recently I was about to start a project where I didn&#8217;t know quite well what direction it was going to take. So I was there, experimenting and hacking code here and there while investigating where would it bring us, when I realised that I would like to have a snapshot of the code at that point, before continuing with the next part. The classic solution would have been to make a .zip of the code folder, or a copy of the folder in the above directory, and continue. But if you want to compare between versions, manually calling diff between file versions is cumbersome. I didn&#8217;t want to add the code to the subversion repository because it was by no means ready yet for anything. So I though: why don&#8217;t I use git for this?</p>
<p>First steps were a bit uncertain, but I quickly developed a simple yet effective command line technique. Yeah, no IDE plug-in whatsoever, I am just using a bash terminal. It works pretty much like this:</p>
<ul>
<li>code code code</li>
<li>looks good! let&#8217;s store this&#8230;</li>
<li><strong>git add file1.cpp file2.cpp</strong> &#8230;&#8230;&#8230;. or <strong>git add .</strong> for adding all changed files to the commit</li>
<li><strong>git commit</strong> (so that I can enter more than one line of commit message, in the editor that shows up) or <strong>git commit -m &#8216;commit message&#8217;</strong> for one liners.</li>
</ul>
<p>Sometimes, when I want to see what has changed, I use <strong>gitk</strong>. It is admittedly ugly but once you get it, it&#8217;s nicer than reading plain <strong>diff</strong> output in a terminal screen. Specially because you can navigate between changes, instead of having to manually invoke diff for each file you want to compare.</p>
<p>At a certain point I wanted to make a huge code change, so I made a new branch. Actually, I haven&#8217;t gone back to the other branch since then, but it&#8217;s good to know it&#8217;s there in case I want to see how the code is in that totally incompatible code and class-wise approach to the problem.</p>
<p>Probably one of the things I like more is that everything is lightning fast. Since the repository is stored locally, there is no more waiting for commits to finish or contacting the server for getting a diff. Even if your Subversion server is in your local network, it will never beat the experience of a localhost, direct disk access based repository. This way, one doesn&#8217;t get distracted with the check in/commit process; it becomes an almost automatic action so the mind can be focused in the real problem: the code!</p>
<p>If you&#8217;re an advanced git user, you might have already realised that I am only using a very reduced set of git features. Whether that&#8217;s <em>sad</em> or not, I leave it up to you; I just wanted to highlight the notion that although git is generally used (or was designed) for huge projects with lots of collaborators branching and merging intensively and all that, <strong>it is actually very good for producing what I call code sketches</strong>, and it doesn&#8217;t need to be used by several users with all the <em>clone</em>, <em>pull</em>, <em>push</em> and rest of single-worded verbs paraphernalia to enjoy its power.</p>
<p>Please don&#8217;t understand this post as a <q>subversion sucks, use git</q> square-headed litany, but rather as a friendly <q>git could be quite useful, if you have some spare time you might consider having a look at it</q> suggestion from a long-time Subversion user who knows Git is intimidating but worth the effort to learn :D</p>
 <p><a href="http://soledadpenades.com/?flattrss_redirect&amp;id=2333&amp;md5=77b36f02712d19e33d28cf9b5d7e3ad1" title="Flattr" target="_blank"><img src="http://soledadpenades.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://soledadpenades.com/2009/12/18/my-git-workflow/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=8399&amp;amp;url=http%3A%2F%2Fsoledadpenades.com%2F2009%2F12%2F18%2Fmy-git-workflow%2F&amp;amp;language=en_GB&amp;amp;category=text&amp;amp;title=My+Git+workflow&amp;amp;description=I+first+attempted+to+use+Git+almost+a+year+ago.+I+tried+to+use+it+as+a+kind+of+rsync%27er+between+computers+for+my+personal+projects%2Bdata+folder.+It+didn%27t+work+too+well%3A+I+think+it+was+primarily+built+with+the+idea+of+versioning+and+syncing+source+files%2C+not+thousands+of+WAV+sample+files+scattered+around+thousands+of+nested+folders.+So+I+left+%22Start+using+Git%22+in+my+to-do+list+and+almost+forgot+about+it.%0D%0A%0D%0ARecently+I+was+about+to+start+a+project+where+I+didn%27t+know+quite+well+what+direction+it+was+going+to+take.+So+I+was+there%2C+experimenting+and+hacking+code+here+and+there+while+investigating+where+would+it+bring+us%2C+when+I+realised+that+I+would+like+to+have+a+snapshot+of+the+code+at+that+point%2C+before+continuing+with+the+next+part.+The+classic+solution+would+have+been+to+make+a+.zip+of+the+code+folder%2C+or+a+copy+of+the+folder+in+the+above+directory%2C+and+continue.+But+if+you+want+to+compare+between+versions%2C+manually+calling+diff+between+file+versions+is+cumbersome.+I+didn%27t+want+to+add+the+code+to+the+subversion+repository+because+it+was+by+no+means+ready+yet+for+anything.+So+I+though%3A+why+don%27t+I+use+git+for+this%3F%0D%0A%0D%0AFirst+steps+were+a+bit+uncertain%2C+but+I+quickly+developed+a+simple+yet+effective+command+line+technique.+Yeah%2C+no+IDE+plug-in+whatsoever%2C+I+am+just+using+a+bash+terminal.+It+works+pretty+much+like+this%3A%0D%0A%0D%0A%0D%0A%09code+code+code%0D%0A%09looks+good%21+let%27s+store+this...%0D%0A%09git+add+file1.cpp+file2.cpp+..........+or+git+add+.+for+adding+all+changed+files+to+the+commit%0D%0A%09git+commit+%28so+that+I+can+enter+more+than+one+line+of+commit+message%2C+in+the+editor+that+shows+up%29+or+git+commit+-m+%27commit+message%27+for+one+liners.%0D%0A%0D%0A%0D%0ASometimes%2C+when+I+want+to+see+what+has+changed%2C+I+use+gitk.+It+is+admittedly+ugly+but+once+you+get+it%2C+it%27s+nicer+than+reading+plain+diff+output+in+a+terminal+screen.+Specially+because+you+can+navigate+between+changes%2C+instead+of+having+to+manually+invoke+diff+for+each+file+you+want+to+compare.%0D%0A%0D%0AAt+a+certain+point+I+wanted+to+make+a+huge+code+change%2C+so+I+made+a+new+branch.+Actually%2C+I+haven%27t+gone+back+to+the+other+branch+since+then%2C+but+it%27s+good+to+know+it%27s+there+in+case+I+want+to+see+how+the+code+is+in+that+totally+incompatible+code+and+class-wise+approach+to+the+problem.%0D%0A%0D%0AProbably+one+of+the+things+I+like+more+is+that+everything+is+lightning+fast.+Since+the+repository+is+stored+locally%2C+there+is+no+more+waiting+for+commits+to+finish+or+contacting+the+server+for+getting+a+diff.+Even+if+your+Subversion+server+is+in+your+local+network%2C+it+will+never+beat+the+experience+of+a+localhost%2C+direct+disk+access+based+repository.+This+way%2C+one+doesn%27t+get+distracted+with+the+check+in%2Fcommit+process%3B+it+becomes+an+almost+automatic+action+so+the+mind+can+be+focused+in+the+real+problem%3A+the+code%21%0D%0A%0D%0AIf+you%27re+an+advanced+git+user%2C+you+might+have+already+realised+that+I+am+only+using+a+very+reduced+set+of+git+features.+Whether+that%27s+sad+or+not%2C+I+leave+it+up+to+you%3B+I+just+wanted+to+highlight+the+notion+that+although+git+is+generally+used+%28or+was+designed%29+for+huge+projects+with+lots+of+collaborators+branching+and+merging+intensively+and+all+that%2C+it+is+actually+very+good+for+producing+what+I+call+code+sketches%2C+and+it+doesn%27t+need+to+be+used+by+several+users+with+all+the+clone%2C+pull%2C+push+and+rest+of+single-worded+verbs+paraphernalia+to+enjoy+its+power.%0D%0A%0D%0APlease+don%27t+understand+this+post+as+a+subversion+sucks%2C+use+git+square-headed+litany%2C+but+rather+as+a+friendly+git+could+be+quite+useful%2C+if+you+have+some+spare+time+you+might+consider+having+a+look+at+it+suggestion+from+a+long-time+Subversion+user+who+knows+Git+is+intimidating+but+worth+the+effort+to+learn+%3AD&amp;amp;tags=git%2Csubversion%2Cworkflow%2Cblog" type="text/html" />
	</item>
		<item>
		<title>DVCS are very cool, but&#8230;</title>
		<link>http://soledadpenades.com/2009/05/29/dvcs-are-very-cool-but/</link>
		<comments>http://soledadpenades.com/2009/05/29/dvcs-are-very-cool-but/#comments</comments>
		<pubDate>Fri, 29 May 2009 21:39:09 +0000</pubDate>
		<dc:creator>sole</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://soledadpenades.com/?p=1019</guid>
		<description><![CDATA[I have taken a look at both git and mercurial. I even went as far as creating several git repositories for syncing stuff across three computers and testing how it would work. It went quite well, considering there was a huge amount of data involved (for example, my music repository, which consists in lots of [...]]]></description>
			<content:encoded><![CDATA[<p>I have taken a look at both git and mercurial. I even went as far as creating several git repositories for syncing stuff across three computers and testing how it would work. It went quite well, considering there was a huge amount of data involved (for example, my music repository, which consists in lots of folders with lots of WAV samples and some more folders with my songs, in both the source formats (IT, XM, S3M, RNS and even XRNS) and the renders (MP3 or OGG, depending on how I felt that particular day). </p>
<p>But I&#8217;m still not completely keen on using them, because there are two things that can be done only with subversion: checking out only a folder, out from the complete hierarchy. And externals.</p>
<p>Although technically one could check out only a folder with git (or that&#8217;s what I could deduct from what I read), it is still kind of awkward/buggy and very far from being as intuitive as it is with subversion. When I looked for info in mercurial docs, it directly said it wasn&#8217;t possible.</p>
<p>Now it seems google code is offering project owners the possibility of switching from subversion to mercurial, but I am going to keep using subversion there too. I don&#8217;t think anyone is going to want to branch any of my <del datetime="2010-08-21T21:56:45+00:00"><a href="http://code.google.com/p/supersnippets/">supersnippets</a> but you never know ;)</del> &#8212; I <a href="http://github.com/sole/snippets">moved the project</a> to github! You can now branch it if you want :D</p>
<p>You may argue that I could do with lots of mini git repositories for each folder I might possibly want to check out, but knowing myself as I do, that&#8217;s just calling for a disaster to happen. I would probably forget to clone/update the most important repository before going offline, you know, that kind of things. It works better for me to keep a single repository with a nice hierarchy of miniprojects that I might occasionally extract or use as externals in other projects.</p>
<p>Just give me those two features and I will be completely convinced to switch to a DVCS (i.e. <em>Distributed Version Control System</em>) :-)</p>
 <p><a href="http://soledadpenades.com/?flattrss_redirect&amp;id=1019&amp;md5=bedd35a290aba0c5238ce2c1515e6a87" title="Flattr" target="_blank"><img src="http://soledadpenades.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://soledadpenades.com/2009/05/29/dvcs-are-very-cool-but/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=8399&amp;amp;url=http%3A%2F%2Fsoledadpenades.com%2F2009%2F05%2F29%2Fdvcs-are-very-cool-but%2F&amp;amp;language=en_GB&amp;amp;category=text&amp;amp;title=DVCS+are+very+cool%2C+but%26%238230%3B&amp;amp;description=I+have+taken+a+look+at+both+git+and+mercurial.+I+even+went+as+far+as+creating+several+git+repositories+for+syncing+stuff+across+three+computers+and+testing+how+it+would+work.+It+went+quite+well%2C+considering+there+was+a+huge+amount+of+data+involved+%28for+example%2C+my+music+repository%2C+which+consists+in+lots+of+folders+with+lots+of+WAV+samples+and+some+more+folders+with+my+songs%2C+in+both+the+source+formats+%28IT%2C+XM%2C+S3M%2C+RNS+and+even+XRNS%29+and+the+renders+%28MP3+or+OGG%2C+depending+on+how+I+felt+that+particular+day%29.+%0D%0A%0D%0ABut+I%27m+still+not+completely+keen+on+using+them%2C+because+there+are+two+things+that+can+be+done+only+with+subversion%3A+checking+out+only+a+folder%2C+out+from+the+complete+hierarchy.+And+externals.%0D%0A%0D%0AAlthough+technically+one+could+check+out+only+a+folder+with+git+%28or+that%27s+what+I+could+deduct+from+what+I+read%29%2C+it+is+still+kind+of+awkward%2Fbuggy+and+very+far+from+being+as+intuitive+as+it+is+with+subversion.+When+I+looked+for+info+in+mercurial+docs%2C+it+directly+said+it+wasn%27t+possible.%0D%0A%0D%0ANow+it+seems+google+code+is+offering+project+owners+the+possibility+of+switching+from+subversion+to+mercurial%2C+but+I+am+going+to+keep+using+subversion+there+too.+I+don%27t+think+anyone+is+going+to+want+to+branch+any+of+my+supersnippets+but+you+never+know+%3B%29+--+I+moved+the+project+to+github%21+You+can+now+branch+it+if+you+want+%3AD%0D%0A%0D%0AYou+may+argue+that+I+could+do+with+lots+of+mini+git+repositories+for+each+folder+I+might+possibly+want+to+check+out%2C+but+knowing+myself+as+I+do%2C+that%27s+just+calling+for+a+disaster+to+happen.+I+would+probably+forget+to+clone%2Fupdate+the+most+important+repository+before+going+offline%2C+you+know%2C+that+kind+of+things.+It+works+better+for+me+to+keep+a+single+repository+with+a+nice+hierarchy+of+miniprojects+that+I+might+occasionally+extract+or+use+as+externals+in+other+projects.%0D%0A%0D%0AJust+give+me+those+two+features+and+I+will+be+completely+convinced+to+switch+to+a+DVCS+%28i.e.+Distributed+Version+Control+System%29+%3A-%29&amp;amp;tags=git%2Cmercurial%2Csubversion%2Cworkflow%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Deploying websites with Subversion</title>
		<link>http://soledadpenades.com/2007/02/21/deploying-websites-with-subversion/</link>
		<comments>http://soledadpenades.com/2007/02/21/deploying-websites-with-subversion/#comments</comments>
		<pubDate>Wed, 21 Feb 2007 08:38:01 +0000</pubDate>
		<dc:creator>sole</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[capistrano]]></category>
		<category><![CDATA[deploying]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[trick]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://www.soledadpenades.com/2007/02/21/deploying-websites-with-subversion/</guid>
		<description><![CDATA[I think I&#8217;m going to move to Subversion all the websites which still aren&#8217;t versioned. It&#8217;s so annoying to change things locally, test locally, then you want to upload them to the server and there&#8217;s always some change which it&#8217;s not updated and booooom! With SVN (Subversion) it&#8217;s much easier. You continue building your stuff [...]]]></description>
			<content:encoded><![CDATA[<p>I think I&#8217;m going to move to Subversion all the websites which still aren&#8217;t versioned. It&#8217;s so annoying to change things locally, test locally, then you want to upload them to the server and there&#8217;s always some change which it&#8217;s not updated and booooom!</p>
<p>With SVN (Subversion) it&#8217;s much easier. You continue building your stuff locally and when you&#8217;re happy with it, check it into your Subversion server. Then you log into your hosting server with ssh, and in your <strong>/web</strong> directory do something like <strong>svn co http://mysubversionserver/project/trunk .</strong> &#8211; that will associate the <strong>/web</strong> directory with the subversion repository path <strong>/project/trunk</strong>. Meaning that each time you do changes and commit them to SVN, you can get all the changes rolled to your server by simply connecting with ssh and running <strong>svn up</strong> in the <strong>/web</strong> directory.</p>
<p>Obviously for doing this you need a hosting account with ssh access. Most of them do not have such thing, and I really can&#8217;t understand how could I survive without ssh access before. Even for simple things such as deleting a directory, ftp&#8217;s and sftp&#8217;s are terribly slow :-)</p>
<p>There&#8217;s more sophisticated people which are using build makers like <a href="http://ant.apache.org/">ant</a> or the famous <a href="http://wiki.rubyonrails.org/rails/pages/Capistrano">capistrano</a> to deploy stuff but for the moment I still don&#8217;t need that degree of complexity; it&#8217;s not worth the effort yet.</p>
 <p><a href="http://soledadpenades.com/?flattrss_redirect&amp;id=618&amp;md5=25fec496044f0f90b86f9d72e62ec397" title="Flattr" target="_blank"><img src="http://soledadpenades.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://soledadpenades.com/2007/02/21/deploying-websites-with-subversion/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=8399&amp;amp;url=http%3A%2F%2Fsoledadpenades.com%2F2007%2F02%2F21%2Fdeploying-websites-with-subversion%2F&amp;amp;language=en_GB&amp;amp;category=text&amp;amp;title=Deploying+websites+with+Subversion&amp;amp;description=I+think+I%27m+going+to+move+to+Subversion+all+the+websites+which+still+aren%27t+versioned.+It%27s+so+annoying+to+change+things+locally%2C+test+locally%2C+then+you+want+to+upload+them+to+the+server+and+there%27s+always+some+change+which+it%27s+not+updated+and+booooom%21%0D%0A%0D%0AWith+SVN+%28Subversion%29+it%27s+much+easier.+You+continue+building+your+stuff+locally+and+when+you%27re+happy+with+it%2C+check+it+into+your+Subversion+server.+Then+you+log+into+your+hosting+server+with+ssh%2C+and+in+your+%2Fweb+directory+do+something+like+svn+co+http%3A%2F%2Fmysubversionserver%2Fproject%2Ftrunk+.+-+that+will+associate+the+%2Fweb+directory+with+the+subversion+repository+path+%2Fproject%2Ftrunk.+Meaning+that+each+time+you+do+changes+and+commit+them+to+SVN%2C+you+can+get+all+the+changes+rolled+to+your+server+by+simply+connecting+with+ssh+and+running+svn+up+in+the+%2Fweb+directory.%0D%0A%0D%0AObviously+for+doing+this+you+need+a+hosting+account+with+ssh+access.+Most+of+them+do+not+have+such+thing%2C+and+I+really+can%27t+understand+how+could+I+survive+without+ssh+access+before.+Even+for+simple+things+such+as+deleting+a+directory%2C+ftp%27s+and+sftp%27s+are+terribly+slow+%3A-%29%0D%0A%0D%0AThere%27s+more+sophisticated+people+which+are+using+build+makers+like+ant+or+the+famous+capistrano+to+deploy+stuff+but+for+the+moment+I+still+don%27t+need+that+degree+of+complexity%3B+it%27s+not+worth+the+effort+yet.&amp;amp;tags=capistrano%2Cdeploying%2Csubversion%2Ctrick%2Cworkflow%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>

