<?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>Atlassian Blogs</title>
	<atom:link href="http://blogs.atlassian.com/blog-cat/stash/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.atlassian.com</link>
	<description>Software development and collaboration tools</description>
	<lastBuildDate>Fri, 24 May 2013 05:54:59 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Stash 2.4: Forking in the Enterprise</title>
		<link>http://blogs.atlassian.com/2013/05/stash-git-forking-development-workflow/</link>
		<comments>http://blogs.atlassian.com/2013/05/stash-git-forking-development-workflow/#comments</comments>
		<pubDate>Mon, 06 May 2013 14:29:30 +0000</pubDate>
		<dc:creator>Giancarlo Lionetti</dc:creator>
				<category><![CDATA[DVCS]]></category>
		<category><![CDATA[Stash]]></category>
		<category><![CDATA[fork]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[git workflow]]></category>
		<category><![CDATA[personal repositories]]></category>
		<category><![CDATA[repository management]]></category>

		<guid isPermaLink="false">http://blogs.atlassian.com/?p=25165</guid>
		<description><![CDATA[The distributed nature of Git gives development teams a plethora of options when choosing how to collaborate on projects. Teams migrating their development to Git need the flexibility to best work with code in a distributed enterprise environment. Common practices have emerged using branch- and fork- based workflows, igniting debates on how they can best be used in the enterprise. Today we&#8217;re pleased to announce Stash 2.4, which offers the choice and flexibility enterprise teams need to manage their Git development workflows. This release introduces several key features to manage and collaborate on your Git repositories behind the firewall–forking, a distributed development workflow popularized in open source development, along with personal repositories and per-repository permissions. Choice, flexibility, control–that&#8217;s Stash 2.4. Try Stash 2.4 Now Collaborative Git Development with Forks To fork simply means to create a clone of a repository, including previous history, on the server side. Forks in Stash provide developers with a workflow to contribute code back to a repository for which they do not have write access–adding a layer of control into your development process. In Stash, clicking the &#8216;Fork&#8217; button on a repository creates a copy that is tracked by Stash and modified independently of the original repository, insulating code from the original repository to unwanted changes or errors. You can fork a repository into any other project in Stash for which you have admin access, or create personal forks and give other developers access. Stash lets you easily merge changes between forks through pull requests. Why fork? Contractors – Allow external developers to contribute to a project while only core team members have write access to the repository. Contributors can simply fork a repository and contribute changes back via pull requests. Large teams – With hundreds of developers working on the same repository, the volume of branches and activity in the repository can turn into noise. Forks provide a way for teams to work separately while constantly syncing new additions from the core repository into their project. Experiments – Whether you&#8217;re participating in ShipIt, spiking a project, or simply prototyping a feature, experimenting on forks gives developers the option to trash changes without polluting the main repository with commits if the experiment goes nowhere. For an in-depth look at why an enterprise would want to adopt forks see &#8220;Why Forks?&#8220;. Contribute changes via pull requests The beauty of forks is that changes being made on the forked repository will not affect the main code line. Once a fork is ready for primetime, a request can be made to merge it into the original repository. Stash and pull requests facilitate the process of merging those changes. This gives other developers an opportunity to review and discuss the changes before they become a part of the main codebase. From there the changes can be merged based on the pull request settings and branch permissions in the original repository. Personal Repositories In Stash 2.4 we&#8217;ve added a way to create personal repositories that are not related to other projects. This gives developers the freedom to innovate and store their private snippets of work, kick-start their own project, [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignright  wp-image-25166" alt="stash-forking" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/stash-forking-300x298.png" width="95" height="93" />The distributed nature of Git gives development teams a plethora of options when choosing how to collaborate on projects. Teams migrating their development to Git need the flexibility to best work with code in a distributed enterprise environment. Common practices have emerged using branch- and fork- based workflows, igniting debates on how they can best be used in the enterprise.</p>
<p>Today we&#8217;re pleased to announce <strong><a href="http://www.atlassian.com/software/stash/download" rel="nofollow">Stash 2.4</a></strong>, which offers the choice and flexibility enterprise teams need to manage their Git development workflows. This release introduces several key features to manage and collaborate on your Git repositories behind the firewall–<strong>forking</strong>, a distributed development workflow popularized in open source development, along with <strong>personal repositories</strong> and <strong>per-repository permissions</strong>. Choice, flexibility, control–that&#8217;s Stash 2.4.</p>
<p style="text-align: center;"><a class="wac-button" style="display: inline-block; background-color: #9fc71c; border: 1px solid #99c019; border-bottom: 1px solid #89b413; border-radius: 6px; box-shadow: inset 0 1px 0 0 #c3dc71; color: #fff; font-size: 18px; font-family: kulturista-web-1,Helvetica,Arial,Verdana,sans-serif; text-decoration: none; text-shadow: 0px 1px 2px #779908; padding: 7px 15px 8px;" href="http://www.atlassian.com/software/stash/download"><span style="display: block; border-radius: 6px; cursor: pointer; padding-right: 25px; background: url('http://atlassian.wpengine.netdna-cdn.com/wp-content/themes/atlassian/images/buttonArrow.png') no-repeat center right;">Try Stash 2.4 Now</span></a></p>
<h2 id="Stash2.4ReleaseBlog-CollaborativeGitDevelopmentwithForks"><a href="http://www.atlassian.com/software/stash/download">Collaborative Git Development</a> with Forks</h2>
<p>To fork simply means to create a clone of a repository, including previous history, on the server side. Forks in Stash provide developers with a workflow to contribute code back to a repository for which they do not have write access–adding a layer of control into your development process. In Stash, clicking the &#8216;Fork&#8217; button on a repository creates a copy that is tracked by Stash and modified independently of the original repository, insulating code from the original repository to unwanted changes or errors. You can fork a repository into any other project in Stash for which you have admin access, or create personal forks and give other developers access. Stash lets you easily merge changes between forks through pull requests.</p>
<p style="text-align: center;"><img class="wp-image-25171 aligncenter" style="margin-top: 0px; margin-bottom: 0px;" alt="Stash_Email_Hero_509w_2" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/Stash_Email_Hero_509w_22.png" width="510" height="267" /></p>
<h3 id="Stash2.4ReleaseBlog-WhyFork?"><strong><a href="http://blogs.atlassian.com/2013/05/git-branching-and-forking-in-the-enterprise-why-fork/" rel="nofollow">Why fork</a>?</strong></h3>
<ul>
<li><strong>Contractors</strong> – Allow external developers to contribute to a project while only core team members have write access to the repository. Contributors can simply fork a repository and contribute changes back via pull requests.</li>
<li><strong>Large teams </strong>– With hundreds of developers working on the same repository, the volume of branches and activity in the repository can turn into noise. Forks provide a way for teams to work separately while constantly syncing new additions from the core repository into their project.</li>
<li><strong>Experiments </strong>– Whether you&#8217;re participating in <a href="http://www.atlassian.com/company/about/shipit" rel="nofollow">ShipIt</a>, spiking a project, or simply prototyping a feature, experimenting on forks gives developers the option to trash changes without polluting the main repository with commits if the experiment goes nowhere.</li>
</ul>
<p style="text-align: center;"><a href="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/Forks_Annotated1.png" target="_blank" rel="lightbox[25165]" title="Stash 2.4: Forking in the Enterprise"><img class="aligncenter  wp-image-25188" style="margin-top: 0px; margin-bottom: 0px;" alt="Forks_Annotated" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/Forks_Annotated1.png" width="600" height="353" /></a></p>
<p style="text-align: left;"><em>For an in-depth look at why an enterprise would want to adopt forks see &#8220;<a href="http://blogs.atlassian.com/2013/05/git-branching-and-forking-in-the-enterprise-why-fork/">Why Forks?</a>&#8220;.</em></p>
<h3 id="Stash2.4ReleaseBlog-Contributechangesviapullrequests">Contribute changes via pull requests</h3>
<p>The beauty of forks is that changes being made on the forked repository will not affect the main code line. Once a fork is ready for primetime, a request can be made to merge it into the original repository. Stash and pull requests facilitate the process of merging those changes. This gives other developers an opportunity to review and discuss the changes before they become a part of the main codebase. From there the changes can be merged based on the pull request settings and branch permissions in the original repository.</p>
<p style="text-align: center;"><a href="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/Screen-Shot-2013-04-29-at-8.33.51-PM.png" target="_blank" rel="lightbox[25165]" title="Stash 2.4: Forking in the Enterprise"><img class="aligncenter  wp-image-25190" style="border: 1px solid #cee1f2; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; margin-top: 0px; margin-bottom: 0px;" alt="Screen Shot 2013-04-29 at 8.33.51 PM" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/Screen-Shot-2013-04-29-at-8.33.51-PM.png" width="500" height="329" /></a></p>
<h3 id="Stash2.4ReleaseBlog-PersonalRepositories">Personal Repositories</h3>
<p>In Stash 2.4 we&#8217;ve added a way to create personal repositories that are not related to other projects. This gives developers the freedom to innovate and store their private snippets of work, kick-start their own project, contribute a bug fix for a project they are not a member of, or add a feature to a common component maintained by a small group in an organization. Keep your personal repositories as open (or closed) as you want, then use repository permissions to collaborate with other users and groups if and when you are ready.</p>
<p>With the introduction of personal repositories and personal forks, we needed an easily accessible place to summarize the information. So we revamped user profiles, too.</p>
<p style="text-align: center;"><a href="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/PersRep_Annotated1.png" target="_blank" rel="lightbox[25165]" title="Stash 2.4: Forking in the Enterprise"><img class="aligncenter  wp-image-25187" style="margin-top: 0px; margin-bottom: 0px;" alt="PersRep_Annotated" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/PersRep_Annotated1.png" width="600" height="353" /></a></p>
<h2 id="Stash2.4ReleaseBlog-RepositoryPermissions">Repository Permissions</h2>
<p>Stash permissions aim to keep your code secure, and give you the confidence that the right developers have the right access. Early in Stash&#8217;s development we introduced two key permission sets: Global permissions to provide control or delegate user and group access to projects, and project permissions to control read and write access per-project. In Stash 2.0 we added a deeper level of access control–branch permissions–to enforce who can commit to specific branches in a repository. Stash 2.4 adds even more fine-grained access control to Stash; you can now set permissions at the repository level.</p>
<p style="text-align: center;"><a href="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/RepPerm_Annotated1.png" target="_blank" rel="lightbox[25165]" title="Stash 2.4: Forking in the Enterprise"><img class="aligncenter  wp-image-25186" alt="RepPerm_Annotated" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/RepPerm_Annotated1.png" width="600" height="353" /></a></p>
<p>Administrators can keep projects as open or closed as they want. Grant access to individual repositories within a project without making the entire project available to the user. There are several scenarios where this can benefit your workflow:</p>
<ul>
<li><strong>External developers</strong> – Opening up broad access to your repositories can be nerve-racking when working with external developers. For a given project, your core team should have access to all repositories, while only select repositories are available to contractors.</li>
<li><strong>Open up access –</strong> Many teams restrict write access to a small group of developers for specific projects. To foster collaboration you can open up view access to the rest of an organization so other non-core team members can fork and contribute.</li>
<li><strong>Delegate administration </strong>– Save valuable time by providing administration access for a repository to trusted team members, giving them the freedom to manage specific repositories.</li>
</ul>
<p>Stash lets you choose how you and your teams work with distributed code, and that flexibility means you can work and ship faster.</p>
<h2 id="Stash2.4ReleaseBlog-AlwaysForkBeforeYouCommitWithStash2.4">Always Fork Before You Commit With Stash 2.4</h2>
<p><strong>New to Stash? Fork today with </strong><strong><a href="http://www.atlassian.com/software/stash/download" rel="nofollow">a free trial</a></strong> and get up and running in a matter of minutes.</p>
<p style="text-align: center;"><a class="wac-button" style="display: inline-block; background-color: #9fc71c; border: 1px solid #99c019; border-bottom: 1px solid #89b413; border-radius: 6px; box-shadow: inset 0 1px 0 0 #c3dc71; color: #fff; font-size: 18px; font-family: kulturista-web-1,Helvetica,Arial,Verdana,sans-serif; text-decoration: none; text-shadow: 0px 1px 2px #779908; padding: 7px 15px 8px;" href="http://www.atlassian.com/software/stash/download"><span style="display: block; border-radius: 6px; cursor: pointer; padding-right: 25px; background: url('http://atlassian.wpengine.netdna-cdn.com/wp-content/themes/atlassian/images/buttonArrow.png') no-repeat center right;">Try Stash 2.4 Now</span></a></p>
<p><strong>Already using Stash? </strong>Your upgrade to 2.4 is just a click away. Check out our <strong><a href="https://confluence.atlassian.com/display/STASH/Stash+2.4+release+notes" rel="nofollow">full release notes</a> </strong>to get started<strong>.</strong></p>
 <img src="http://blogs.atlassian.com/?feed-stats-post-id=25165" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.atlassian.com/2013/05/stash-git-forking-development-workflow/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>How Stash Developers Avoid Branching from a Bad Commit</title>
		<link>http://blogs.atlassian.com/2013/05/how-stash-developers-avoid-branching-from-a-bad-commit/</link>
		<comments>http://blogs.atlassian.com/2013/05/how-stash-developers-avoid-branching-from-a-bad-commit/#comments</comments>
		<pubDate>Thu, 02 May 2013 00:09:18 +0000</pubDate>
		<dc:creator>Tim Pettersen</dc:creator>
				<category><![CDATA[Bamboo]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Stash]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[hooks]]></category>

		<guid isPermaLink="false">http://blogs.atlassian.com/?p=25203</guid>
		<description><![CDATA[One of my colleagues recently blogged about how the Confluence team avoids creating feature branches from bad commits. This blog post describes how to take the same idea one step further. The Problem I hate it when I make a trivial change, something like: 123456789$ git checkout master Switch to branch 'master' &#160; $ git checkout -b STASHDEV-1234-fix-capitalisation-of-Stash Switched to a new branch 'STASHDEV-1234-fix-capitalisation-of-Stash' &#160; .. change capitalization of one word in a template .. &#160; $ git commit -m &#34;STASHDEV-1234: Totally trivial change&#34; &#38;&#38; git push --set-upstream origin STASHDEV-1234-fix-capitalisation-of-Stash Then a few minutes later.. *BOOM* What the heck? How did changing the capitalization of a letter break the database migration tests? Hmm.. maybe they&#8217;re flakey. Let&#8217;s re-run the build. *BOOM* Arggh! Oh wait. Of course. I know what heinous crime I&#8217;ve committed! 12$ git checkout master $ git checkout -b STASHDEV-1234-fix-capitalisation-of-Stash Little did I know, one of my co-workers had broken master at some point in the past. My crime: branching from their broken commit. A simple merge from master at this point (providing it&#8217;s green) will remedy the situation, even if it does make the history a bit uglier. Wouldn&#8217;t it be nice if we could avoid this whole situation altogether? The Solution What if git warned you when you switched to a dodgy ref? Something like: 12345$ git checkout master master is lookin' good! c4f3b4b has 4 green builds. &#160; $ git checkout stable-2.3 DANGER! stable-2.3 is busted. e1324fa has 2 red builds. Then you could easily switch back to a better ref for your branch point, or slap the build breaker until they fix it. I&#8217;ve built a little client-side git hook that does exactly that. It will work work for any git repository built by Bamboo or hosted by Stash, and is super easy to install. Just run this command from the root of your local clone: 1sh &#60;(curl -s https://bitbucket.org/tpettersen/post-checkout-build-status/raw/master/install.sh) You&#8217;ll be prompted for the url and credentials of either: the Bamboo server that builds your repository; or the Stash server that hosts your repository (if you&#8217;ve set up your CI server to notify Stash of build results). 1234567$ sh &#60;(curl -s https://bitbucket.org/tpettersen/post-checkout-build-status/raw/master/install.sh) Retrieve build status from (S)tash or (B)amboo? B Bamboo URL: bamboo.atlassian.com Username: tpettersen Password: Installing hook... post-update hook installed. Config written to .git/hooks/bamboo-config.yml It works by registering a post-checkout hook that hits a little known REST end-point in Bamboo that provides all build results for a particular SHA. The project is up on Bitbucket and I&#8217;m very open to pull requests.]]></description>
				<content:encoded><![CDATA[<p>One of my colleagues <a href="http://blogs.atlassian.com/2013/04/avoid-branching-from-bad-commit/" title="How Confluence Developers Avoid Branching from a Bad Commit">recently blogged</a> about how the Confluence team avoids creating feature branches from bad commits. This blog post describes how to take the same idea one step further.</p>
<h2>The Problem</h2>
<p>I hate it when I make a trivial change, something like:</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ git checkout master<br />
Switch to branch 'master'<br />
&nbsp;<br />
$ git checkout -b STASHDEV-1234-fix-capitalisation-of-Stash<br />
Switched to a new branch 'STASHDEV-1234-fix-capitalisation-of-Stash'<br />
&nbsp;<br />
.. change capitalization of one word in a template ..<br />
&nbsp;<br />
$ git commit -m &quot;STASHDEV-1234: Totally trivial change&quot; &amp;&amp; git push --set-upstream origin STASHDEV-1234-fix-capitalisation-of-Stash</div></td></tr></tbody></table></div>
<p>Then a few minutes later.. <strong>*BOOM*</strong></p>
<p><a href="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/boom-0.png" rel="lightbox[25203]" title="ka-boom!"><img src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/boom-0-600x52.png" alt="broken builds" width="600" height="52" class="alignnone size-large wp-image-25204" title="ka-boom!" /></a></p>
<p>What the heck? How did changing the capitalization of a letter break the database migration tests?</p>
<p>Hmm.. maybe they&#8217;re flakey. Let&#8217;s re-run the build. <strong>*BOOM*</strong></p>
<p><a href="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/boom-1.png" rel="lightbox[25203]" title="How Stash Developers Avoid Branching from a Bad Commit"><img src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/boom-1-600x54.png" alt="more broken builds" width="600" height="54" class="alignnone size-large wp-image-25205" /></a></p>
<p>Arggh!</p>
<p>Oh wait. Of course. I know what heinous crime I&#8217;ve committed!</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ git checkout master<br />
$ git checkout -b STASHDEV-1234-fix-capitalisation-of-Stash</div></td></tr></tbody></table></div>
<p>Little did I know, one of my co-workers had broken master at some point in the past. My crime: branching from their broken commit. A simple merge from master at this point (providing it&#8217;s green) will remedy the situation, even if it does make the history a bit uglier.</p>
<p>Wouldn&#8217;t it be nice if we could avoid this whole situation altogether?</p>
<h2>The Solution</h2>
<p>What if git warned you when you switched to a dodgy ref? Something like:</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ git checkout master<br />
master is lookin' good! c4f3b4b has 4 green builds.<br />
&nbsp;<br />
$ git checkout stable-2.3 <br />
DANGER! stable-2.3 is busted. e1324fa has 2 red builds.</div></td></tr></tbody></table></div>
<p>Then you could easily switch back to a better ref for your branch point, or slap the build breaker until they fix it.</p>
<p>I&#8217;ve built a little client-side git hook that does exactly that. It will work work for any git repository built by Bamboo or hosted by Stash, and is super easy to install.</p>
<p>Just run this command from the root of your local clone:</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sh &lt;(curl -s https://bitbucket.org/tpettersen/post-checkout-build-status/raw/master/install.sh)</div></td></tr></tbody></table></div>
<p>You&#8217;ll be prompted for the url and credentials of either: </p>
<ul>
<li>the Bamboo server that builds your repository; or</li>
<li>the Stash server that hosts your repository (if you&#8217;ve set up your CI server to <a href="https://developer.atlassian.com/stash/docs/latest/how-tos/updating-build-status-for-commits.html">notify Stash of build results</a>).</li>
</ul>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ sh &lt;(curl -s https://bitbucket.org/tpettersen/post-checkout-build-status/raw/master/install.sh)<br />
Retrieve build status from (S)tash or (B)amboo? B<br />
Bamboo URL: bamboo.atlassian.com<br />
Username: tpettersen<br />
Password: <br />
Installing hook...<br />
post-update hook installed. Config written to .git/hooks/bamboo-config.yml</div></td></tr></tbody></table></div>
<p>It works by registering a <a href="http://git-scm.com/book/ch7-3.html">post-checkout hook</a> that hits a <a href="https://bamboo.phpbb.com/rest/api/latest/result/byChangeset/954edb3eb4f79d48c3fdf2e204791ea454145085" title="changeset end-point">little known REST end-point</a> in Bamboo that provides all build results for a particular SHA.</p>
<p>The project is <a href="https://bitbucket.org/tpettersen/post-checkout-build-status" title="post-checkout-build-status">up on Bitbucket</a> and I&#8217;m very open to pull requests.</p>
 <img src="http://blogs.atlassian.com/?feed-stats-post-id=25203" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.atlassian.com/2013/05/how-stash-developers-avoid-branching-from-a-bad-commit/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Atlassian at GOTO Chicago</title>
		<link>http://blogs.atlassian.com/2013/04/atlassian-at-goto-chicago/</link>
		<comments>http://blogs.atlassian.com/2013/04/atlassian-at-goto-chicago/#comments</comments>
		<pubDate>Thu, 25 Apr 2013 01:35:02 +0000</pubDate>
		<dc:creator>Dan Radigan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Atlassian]]></category>
		<category><![CDATA[Bitbucket]]></category>
		<category><![CDATA[development tools]]></category>
		<category><![CDATA[stash]]></category>

		<guid isPermaLink="false">http://blogs.atlassian.com/?p=25130</guid>
		<description><![CDATA[GOTO Chicago 2013 It was great to be one of the sponsors at the GOTO Chicago 2013 conference from Tuesday April, 23 &#8211; Wednesday, April 24th  It was awesome meeting a number of JIRA, Confluence, and Dev Tools customers  at the conference.  Herzum Consulting, one of our experts joined us at the booth as well.  Atlassian Experts help deliver an incredible experience with our products. If you need a plugin built, a deployment tuned, help with setup and configuration, or coaching on going agile, we’ve got the expert for the job. Technology, Innovation, and Fun We enjoyed two full days of technology, innovation, and fun with some amazingly bright minds.  We heard from Dan North sharing on how we tend to cling to structure.  He challenged us how to thrive in an uncertain world.  Mike Lee talked candidly about how innovation happens at the intersection of creativity and commerce. His take is that innovation, the hard core engineering, commands sacrifice.  Mike encourages developers to seek feedback from peers as well as end users on making their application better. We also heard from Atlassian&#8217;s own Tim Pettersen.  Tim, originally based in Sydney, was one of the developers on the Stash team.  He now joins us in San Francisco as a developer advocate.   Stash is Atlassian&#8217;s on-premise, enterprise grade Git solution.  He shared with all of us how to use Git as a platform.  He used examples from tracking configuration changes in a Wi-Fi router to seeing change history in the German legislature.  Tim of course hosts his slides in Git! New to Git? For those of you who are new to Git, Atlassian has two Git solutions: Stash and Bitbucket.  Stash is enterprise Git for an on premise solution.  Bitbucket is all of the goodness of Git hosted in the cloud. Want to learn more about Git? Check out our Git center on the web. Git Tutorials and Training]]></description>
				<content:encoded><![CDATA[<h2>GOTO Chicago 2013</h2>
<p><img class="size-full wp-image-25131 alignright" alt="Screen Shot 2013-04-24 at 5.41.30 PM" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/Screen-Shot-2013-04-24-at-5.41.30-PM.png" width="276" height="144" />It was great to be one of the sponsors at the <a href="http://gotocon.com/chicago-2013/" target="_blank">GOTO Chicago 2013</a> conference from Tuesday April, 23 &#8211; Wednesday, April 24th  It was awesome meeting a number of JIRA, Confluence, and Dev Tools customers  at the conference.  <a href="http://www.herzum.com/">Herzum Consulting</a>, one of our experts joined us at the booth as well.  Atlassian Experts help deliver an incredible experience with our products. If you need a plugin built, a deployment tuned, help with setup and configuration, or coaching on going agile, we’ve got the expert for the job.</p>
<h3>Technology, Innovation, and Fun</h3>
<p>We enjoyed two full days of technology, innovation, and fun with some amazingly bright minds.  We heard from <a href="http://www.dannorth.com/" target="_blank">Dan North</a> sharing on how we tend to cling to structure.  He challenged us how to thrive in an uncertain world.  <a href="http://gotocon.com/chicago-2013/speaker/Mike+Lee" target="_blank">Mike Lee</a> talked candidly about how innovation happens at the intersection of creativity and commerce. His take is that innovation, the hard core engineering, commands sacrifice.  Mike encourages developers to seek feedback from peers as well as end users on making their application better.</p>
<p><img class="alignleft" alt="Tim-Pettersen" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/Tim-Pettersen.png" width="120" height="160" />We also heard from Atlassian&#8217;s own <a href="http://gotocon.com/chicago-2013/speaker/Tim+Pettersen" target="_blank">Tim Pettersen</a>.  Tim, originally based in Sydney, was one of the developers on the Stash team.  He now joins us in San Francisco as a developer advocate.   Stash is Atlassian&#8217;s on-premise, enterprise grade Git solution.  He shared with all of us how to use Git as a platform.  He used examples from tracking configuration changes in a Wi-Fi router to seeing change history in the German legislature.  Tim of course <a href="http://tpettersen.bitbucket.org/talk/git-as-a-platform" target="_blank">hosts his slides</a> in Git!</p>
<h3>New to Git?</h3>
<p>For those of you who are new to Git, Atlassian has two Git solutions: Stash and Bitbucket.  Stash is enterprise Git for an on premise solution.  Bitbucket is all of the goodness of Git hosted in the cloud.</p>
<p>Want to learn more about Git? Check out our Git center on the web.</p>
<p style="text-align: center;"><a class="wac-button" style="display: inline-block; background-color: #9fc71c; border: 1px solid #99c019; border-bottom: 1px solid #89b413; border-radius: 6px; box-shadow: inset 0 1px 0 0 #c3dc71; color: #fff; font-size: 18px; font-family: kulturista-web-1,Helvetica,Arial,Verdana,sans-serif; text-decoration: none; text-shadow: 0px 1px 2px #779908; padding: 7px 15px 8px;" href="http://www.atlassian.com/git"><span style="display: block; border-radius: 6px; cursor: pointer; padding-right: 25px; background: url('http://atlassian.wpengine.netdna-cdn.com/wp-content/themes/atlassian/images/buttonArrow.png') no-repeat center right;">Git Tutorials and Training</span></a></p>
 <img src="http://blogs.atlassian.com/?feed-stats-post-id=25130" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.atlassian.com/2013/04/atlassian-at-goto-chicago/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Confluence Developers Avoid Branching from a Bad Commit</title>
		<link>http://blogs.atlassian.com/2013/04/avoid-branching-from-bad-commit/</link>
		<comments>http://blogs.atlassian.com/2013/04/avoid-branching-from-bad-commit/#comments</comments>
		<pubDate>Thu, 18 Apr 2013 15:32:07 +0000</pubDate>
		<dc:creator>Julien Hoarau</dc:creator>
				<category><![CDATA[Bamboo]]></category>
		<category><![CDATA[Confluence]]></category>
		<category><![CDATA[Stash]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[feature branches]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://blogs.atlassian.com/?p=24991</guid>
		<description><![CDATA[The Stash team recently released the Stash-Bamboo plugin, which surfaces pass/fail results from Bamboo builds inside Stash. The main use case for the plugin is to let people reviewing a pull request see whether tests are passing on the development branch before they give the thumbs-up for merging it into master. Pretty cool. So I asked Build engineering to install the plugin on the Bamboo instance we use to build and test Confluence. For now, Bamboo is configured to notify Stash only for &#8221;A1. Master Baseline&#8221; builds. We have a lot of builds for Confluence but not all of them are equals, so we split them in tiers in order to tailor developers reaction. The A1 tier is the most important one and must be green all the time. The plugin is definitely helpful when reviewing pull requests, but I discovered another benefit too. Since the build status icons tell you which commits are good, they can help you start your issue/feature branch on the right foot when you&#8217;re choosing which commit to branch from. And so what? If you&#8217;re lucky enough to never have branched from a bad commit, let me share with you how ugly it can be. You have worked on this new feature, the code has been reviewed and you are ready to push it to master for the world to see, but you see on Stash that the builds are red on your branch. You start checking the builds wondering how your change could have broken all these tests. After a while you realize these tests were broken on master when you branched, but since master is green now everything should be ok. You push your change and move on. After a while build wallboards start getting red all over the office with your face on it. You did break some tests after all&#8230; But all that pain can be avoided if you take care to branch from a good commit in the first place. Scenarios: On the Confluence team, we don&#8217;t have a 1:1 mapping between commits and builds. So given that, the results need to be analysed a bit. Commit with failed builds : obviously you don&#8217;t want to branch from there This doesn&#8217;t mean that this particular commit broke the build. It could be caused by a previous commit build in the same time. Commit with green builds  The more CI builds are exercising that commit, and the more of them that are green, the more reliable the commit is. For the Confluence team, 5 builds passed means all &#8220;A1. Master Baseline&#8221; builds passed, and you can branch Thanks to the Stash-Bamboo plugin we can start your branch on the right foot, but it&#8217;s pretty much useless if you forget to check the build status before branching. One way to fix this problem for good is to use Bamboo Gatekeeper, letting Bamboo push branch changes to master once the tests are green. Or you could put a sticky note on your monitor to remind you&#8230; but I don&#8217;t recommend it. Get the Stash-Bamboo Plugin]]></description>
				<content:encoded><![CDATA[<p>The Stash team recently released the <a href="https://marketplace.atlassian.com/plugins/com.atlassian.bamboo.plugins.bamboo-stash-plugin">Stash-Bamboo plugin</a>, which surfaces pass/fail results from Bamboo builds inside Stash. The main use case for the plugin is to let people reviewing a pull request see whether tests are passing on the development branch before they give the thumbs-up for merging it into master. Pretty cool. So I asked Build engineering to install the plugin on the Bamboo instance we use to build and test Confluence. For now, Bamboo is configured to notify Stash only for &#8221;A1. Master Baseline&#8221; builds. We have a lot of builds for Confluence but not all of them are equals, so we split them in tiers in order to tailor developers reaction. The A1 tier is the most important one and must be green all the time. <a href="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/stash-bamboo-build-status.png" rel="lightbox[24991]" title="How Confluence Developers Avoid Branching from a Bad Commit"><img class="aligncenter size-large wp-image-24993" alt="stash-bamboo-build-status" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/stash-bamboo-build-status-600x339.png" width="600" height="339" /></a> The plugin is definitely helpful when reviewing pull requests, but I discovered another benefit too. Since the build status icons tell you which commits are good, they can help you start your issue/feature branch on the right foot when you&#8217;re choosing which commit to branch from.</p>
<h3>And so what?</h3>
<p>If you&#8217;re lucky enough to never have branched from a bad commit, let me share with you how ugly it can be. You have worked on this new feature, the code has been reviewed and you are ready to push it to master for the world to see, but you see on Stash that the builds are red on your branch. You start checking the builds wondering how your change could have broken all these tests. After a while you realize these tests were broken on master when you branched, but since master is green now everything should be ok. You push your change and move on. After a while build wallboards start getting red all over the office with your face on it. You did break some tests after all&#8230; But all that pain can be avoided if you take care to branch from a good commit in the first place.</p>
<h4>Scenarios:</h4>
<p>On the Confluence team, we don&#8217;t have a 1:1 mapping between commits and builds. So given that, the results need to be analysed a bit.</p>
<ul>
<li>Commit with failed builds <img class="alignnone size-full wp-image-25082" alt="failedBuilds" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/failedBuilds.png" width="23" height="23" />: obviously you don&#8217;t want to branch from there
<ul>
<li>This doesn&#8217;t mean that this <em>particular</em> commit broke the build. It could be caused by a previous commit build in the same time.</li>
</ul>
</li>
<li>Commit with green builds <img class="alignnone size-full wp-image-25084" alt="success" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/success.png" width="20" height="18" />
<ul>
<li>The more CI builds are exercising that commit, and the more of them that are green, the more reliable the commit is.</li>
<li>For the Confluence team, 5 builds passed means all &#8220;A1. Master Baseline&#8221; builds passed, and you can branch</li>
</ul>
</li>
</ul>
<p><a href="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/stash-bamboo-plugin-good-commit.png" rel="lightbox[24991]" title="How Confluence Developers Avoid Branching from a Bad Commit"><img class="aligncenter size-large wp-image-24992" alt="stash-bamboo-plugin-good-commit" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/stash-bamboo-plugin-good-commit-600x359.png" width="600" height="359" /></a> Thanks to the Stash-Bamboo plugin we can start your branch on the right foot, but it&#8217;s pretty much useless if you forget to check the build status before branching. One way to fix this problem for good is to use <a href="https://confluence.atlassian.com/display/BAMBOO/Using+plan+branches#Usingplanbranches-Gatekeeper">Bamboo Gatekeeper</a>, letting Bamboo push branch changes to master once the tests are green. Or you could put a sticky note on your monitor to remind you&#8230; but I don&#8217;t recommend it.</p>
<p style="text-align: center"><a class="wac-button" style="background-color: #9fc71c;border: 1px solid #99c019;border-bottom: 1px solid #89b413;color: #fff;font-size: 18px;font-family: kulturista-web-1,Helvetica,Arial,Verdana,sans-serif;text-decoration: none;padding: 7px 15px 8px" href="https://marketplace.atlassian.com/plugins/com.atlassian.bamboo.plugins.bamboo-stash-plugin"><span>Get the Stash-Bamboo Plugin</span></a></p>
 <img src="http://blogs.atlassian.com/?feed-stats-post-id=24991" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.atlassian.com/2013/04/avoid-branching-from-bad-commit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Meet the Stash Realtime Editor Add-on</title>
		<link>http://blogs.atlassian.com/2013/04/meet-the-stash-realtime-editor-add-on/</link>
		<comments>http://blogs.atlassian.com/2013/04/meet-the-stash-realtime-editor-add-on/#comments</comments>
		<pubDate>Tue, 09 Apr 2013 10:30:26 +0000</pubDate>
		<dc:creator>Rich Manalang</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Stash]]></category>

		<guid isPermaLink="false">http://blogs.atlassian.com/?p=24980</guid>
		<description><![CDATA[Several weeks ago, I found myself refactoring some code a colleague of mine in Boulder wrote (I&#8217;m in San Francisco). Because I&#8217;m impatient, I wanted him to review my changes without going through the normal pomp and circumstance of what&#8217;s now commonly referred to as a pull request or code review. I found myself wishing that I could just share my editor tab over the internet so that he could see what I was working on in real-time. Sure, I could have done one of the following: Invite him to a screen sharing session Copy my code to a snippet hosting site and share the link via HipChat Commit the refactored code to my Stash repo and send him a pull request Most developers would probably have been fine with any of those options, but none was satisfying to me. Bob and I were already engaged in a detailed discussion via HipChat about my refactoring, and being able to code collaboratively would have been ideal. Bringing it to life The situation above isn&#8217;t a first for me. In fact, it happens all the time &#8211; and I&#8217;m sure I&#8217;m not alone. For ages I&#8217;ve longed for a real-time collaborative editor where my code lives. Many have tried to create a solution like this, but none have proved useful for me. So a few weeks back when my colleague Tim Pettersen and I were discussing what we should work on for our quarterly ShipIt project, I suggested that we solve this problem. One day of hacking later, we managed to produce a solution. Introducing the Stash Realtime Editor Add-on The Stash Realtime Editor makes it possible to edit files in real-time directly from the Stash interface &#8211; no cloning, no IDE, no local editor. Because it&#8217;s in real-time, you can share a link with your colleagues to collaboratively edit or review code together. Once you&#8217;re happy with your edits, you can commit them directly to Stash without the need to push your changes up to the repository. Your commit gets stored in a new branch and can be merged in with a simple pull request. This add-on adds a real-time editor directly into Stash using the fabulous Firebase service and its awesome Firepad operational transform (OT) based editor. OT makes it possible to edit files in real-time with reliability and predictability, and allows users to see what other users are doing inside the editor (e.g., selecting, highlighting, typing, etc.). The Stash Realtime Editor works even if you lose network connectivity. If you&#8217;re working on a file with someone and happen to suspend your laptop, resume your work on a train, and then come back online at home, your changes will sync up exactly as you would expect. The Stash Realtime Editor is a free add-on for Stash. Look for it in the Atlassian Marketplace&#8230; Learn more]]></description>
				<content:encoded><![CDATA[<p>Several weeks ago, I found myself refactoring some code a colleague of mine in Boulder wrote (I&#8217;m in San Francisco). Because I&#8217;m impatient, I wanted him to review my changes without going through the normal pomp and circumstance of what&#8217;s now commonly referred to as a pull request or code review. I found myself wishing that I could just share my editor tab over the internet so that he could see what I was working on in real-time. Sure, I could have done one of the following:</p>
<ul>
<li><span style="line-height: 13px;">Invite him to a screen sharing session</span></li>
<li>Copy my code to a snippet hosting site and share the link via HipChat</li>
<li>Commit the refactored code to my Stash repo and send him a pull request</li>
</ul>
<p>Most developers would probably have been fine with any of those options, but none was satisfying to me. Bob and I were already engaged in a detailed discussion via HipChat about my refactoring, and being able to code collaboratively would have been ideal.</p>
<h2>Bringing it to life</h2>
<p>The situation above isn&#8217;t a first for me. In fact, it happens all the time &#8211; and I&#8217;m sure I&#8217;m not alone. For ages I&#8217;ve longed for a real-time collaborative editor where my code lives. Many have tried to create a solution like this, but none have proved useful for me.</p>
<p>So a few weeks back when my colleague <a href="https://twitter.com/kannonboy" target="_blank">Tim Pettersen</a> and I were discussing what we should work on for our quarterly <a href="http://www.atlassian.com/company/about/shipit">ShipIt</a> project, I suggested that we solve this problem. One day of hacking later, we managed to produce a solution.</p>
<h2>Introducing the Stash Realtime Editor Add-on</h2>
<span style="text-align:center; display: block;"><a href="http://blogs.atlassian.com/2013/04/meet-the-stash-realtime-editor-add-on/"><img src="http://img.youtube.com/vi/yOWTlFKoNV8/2.jpg" alt="" /></a></span>
<p>The Stash Realtime Editor makes it possible to edit files in real-time directly from the Stash interface &#8211; no cloning, no IDE, no local editor. Because it&#8217;s in real-time, you can share a link with your colleagues to collaboratively edit or review code together. Once you&#8217;re happy with your edits, you can commit them directly to Stash without the need to push your changes up to the repository. Your commit gets stored in a new branch and can be merged in with a simple pull request.</p>
<p>This add-on adds a real-time editor directly into Stash using the fabulous <a href="https://www.firebase.com/" target="_blank">Firebase</a> service and its awesome <a href="http://www.firepad.io/" target="_blank">Firepad</a> <a href="http://en.wikipedia.org/wiki/Operational_transform" target="_blank">operational transform</a> (OT) based editor. OT makes it possible to edit files in real-time with reliability and predictability, and allows users to see what other users are doing inside the editor (e.g., selecting, highlighting, typing, etc.).</p>
<p>The Stash Realtime Editor works even if you lose network connectivity. If you&#8217;re working on a file with someone and happen to suspend your laptop, resume your work on a train, and then come back online at home, your changes will sync up exactly as you would expect.</p>
<p>The Stash Realtime Editor is a free add-on for Stash. Look for it in the Atlassian Marketplace&#8230;</p>
<p style="text-align: center;"><a class="wac-button" style="display: inline-block; background-color: #9fc71c; border: 1px solid #99c019; border-bottom: 1px solid #89b413; border-radius: 6px; box-shadow: inset 0 1px 0 0 #c3dc71; color: #fff; font-size: 18px; font-family: kulturista-web-1,Helvetica,Arial,Verdana,sans-serif; text-decoration: none; text-shadow: 0px 1px 2px #779908; padding: 7px 15px 8px;" href="https://marketplace.atlassian.com/plugins/com.atlassian.stash.plugin.stash-editor-plugin"><span style="display: block; border-radius: 6px; cursor: pointer; padding-right: 25px; background: url('http://atlassian.wpengine.netdna-cdn.com/wp-content/themes/atlassian/images/buttonArrow.png') no-repeat center right;">Learn more</span></a></p>
 <img src="http://blogs.atlassian.com/?feed-stats-post-id=24980" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.atlassian.com/2013/04/meet-the-stash-realtime-editor-add-on/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Stash 2.3: Crowd Single Sign-on, Branch Cleanup and Git Submodules</title>
		<link>http://blogs.atlassian.com/2013/03/stash-23-crowd-single-sign-on-git-submodules/</link>
		<comments>http://blogs.atlassian.com/2013/03/stash-23-crowd-single-sign-on-git-submodules/#comments</comments>
		<pubDate>Tue, 26 Mar 2013 15:26:38 +0000</pubDate>
		<dc:creator>Giancarlo Lionetti</dc:creator>
				<category><![CDATA[DVCS]]></category>
		<category><![CDATA[Stash]]></category>
		<category><![CDATA[Crowd]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[single sign-on]]></category>
		<category><![CDATA[submodules]]></category>

		<guid isPermaLink="false">http://blogs.atlassian.com/?p=24826</guid>
		<description><![CDATA[Interested in the latest Stash release? Check out What&#8217;s New » What do you get when you combine a razor-focused release cycle and implementing one of the highest voted Stash feature requests? It&#8217;s Stash 2.3, and it&#8217;s available today. Today’s release of Stash 2.3 introduces features for Enterprise teams (single sign-on), Git operations (submodule recognition and branch deletion) and making Stash even more scalable (the SCM Cache plugin). Try Stash 2.3 Now Crowd Single Sign-On Support Many enterprise teams use Atlassian Crowd to integrate and deploy single sign-on (SSO) using popular directory servers such as Active Directory or OpenLDAP. In response to many votes from our users, Stash now supports Crowd SSO. IT administrators can centralize user management through Crowd and provide SSO for all Atlassian apps with minimal configuration. End-users enjoy the convenience of logging in once to any Atlassian application, avoiding the interruption of repeated authentication across other applications. Log in once, and you&#8217;re automatically logged into all applications connected to Crowd, including Stash. Virtually everything in Stash is pluggable and authentication is no different. Our new plugin based authentication allows you to integrate Stash with other single sign-on solutions. Even More Scalable The Stash development team&#8217;s approach to Stash performance is simple: keep it scalable and speedy. Stash maintains fast response times and limits memory consumption by using streaming, paged APIs and fine tuning the many Git operations that we use to build the data displayed to the user. We use a mixture of automated performance tests and manual profiling to ensure every last drop of speed is squeezed out of our software. One of the recent results of our focus on performance is the Stash SCM Cache plugin. Large instances with continuous integration (CI) or other automatic tooling set up to poll Stash for changes can end up with high load on their Stash servers. Consider for instance a CI server that has a number of builds set up for a given repository. Each of those builds polls Stash for changes and when it detects a change, it starts a new build. If your CI server supports parallel and/or chained build steps, each of these builds typically results in multiple clone operations of the same repository. The result: lots of polling for changes, and bursts of clones of a repository when a change is detected. The SCM Cache plugin adds a caching layer that caches the pack files generated by Git during a clone operation on disk. This greatly reduces the CPU hit on your server and drastically improves response time when you experience repetitive requests from continuous integration. Check out some results from a recent test. Read more about installing and configuring the Stash SCM Cache Plugin on your Stash server. Delete Branch Git, unlike some other SCM systems, makes branching and merging your codebase easy and cheap. However, one side effect is that you can often end up with large numbers of calcifying branches cluttering up your repository, long after they&#8217;ve been merged into master. Up until now, deleting branches [...]]]></description>
				<content:encoded><![CDATA[<blockquote>
<h3>Interested in the latest Stash release? Check out <a href="http://www.atlassian.com/software/stash/whats-new" target="_blank">What&#8217;s New</a> »</h3>
</blockquote>
<p>What do you get when you combine a razor-focused release cycle and implementing one of the highest voted Stash feature requests? It&#8217;s <a href="https://www.atlassian.com/software/stash/download" rel="nofollow">Stash 2.3</a>, and it&#8217;s available today. Today’s release of <a href="http://www.atlassian.com/software/stash/download" rel="nofollow"><strong>Stash 2.3</strong></a> introduces features for Enterprise teams (single sign-on), Git operations (submodule recognition and branch deletion) and making Stash even more scalable (the SCM Cache plugin).</p>
<p style="text-align: center;"><a class="wac-button" style="display: inline-block; background-color: #9fc71c; border: 1px solid #99c019; border-bottom: 1px solid #89b413; border-radius: 6px; box-shadow: inset 0 1px 0 0 #c3dc71; color: #fff; font-size: 18px; font-family: kulturista-web-1,Helvetica,Arial,Verdana,sans-serif; text-decoration: none; text-shadow: 0px 1px 2px #779908; padding: 7px 15px 8px;" href="http://www.atlassian.com/software/stash/download"><span style="display: block; border-radius: 6px; cursor: pointer; padding-right: 25px; background: url('http://atlassian.wpengine.netdna-cdn.com/wp-content/themes/atlassian/images/buttonArrow.png') no-repeat center right;">Try Stash 2.3 Now</span></a></p>
<h2 id="Stash2.3AnnouncementBlog-CrowdSingleSign-OnSupport">Crowd Single Sign-On Support</h2>
<p><img class="alignright size-medium wp-image-24827" alt="addons_burst2" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/addons_burst2-300x235.jpg" width="166" height="129" />Many enterprise teams use Atlassian Crowd to integrate and deploy single sign-on (SSO) using popular directory servers such as Active Directory or OpenLDAP. In response to <a href="https://jira.atlassian.com/browse/STASH-2493" rel="nofollow">many votes</a> from our users, <strong>Stash now supports Crowd SSO</strong>.</p>
<ul>
<li><em>IT administrators</em> can centralize user management through Crowd and provide SSO for all Atlassian apps with minimal configuration.</li>
<li><em>End-users</em> enjoy the convenience of logging in once to any Atlassian application, avoiding the interruption of repeated authentication across other applications. Log in once, and you&#8217;re automatically logged into all applications connected to Crowd, including Stash.</li>
</ul>
<p>Virtually everything in Stash is pluggable and authentication is no different. Our new <a href="https://developer.atlassian.com/stash/docs/latest/reference/plugin-module-types/plugin-modules.html" rel="nofollow">plugin based authentication</a> allows you to integrate Stash with other single sign-on solutions.</p>
<h2 id="Stash2.3AnnouncementBlog-EvenMoreScalable">Even More Scalable</h2>
<p>The Stash development team&#8217;s approach to Stash performance is simple: keep it scalable and speedy. Stash maintains fast response times and limits memory consumption by using streaming, paged APIs and fine tuning the many Git operations that we use to build the data displayed to the user. We use a mixture of automated performance tests and manual profiling to ensure every last drop of speed is squeezed out of our software. One of the recent results of our focus on performance is the <a href="https://marketplace.atlassian.com/plugins/com.atlassian.stash.plugin.stash-scm-cache">Stash SCM Cache plugin</a>.</p>
<p>Large instances with continuous integration (CI) or other automatic tooling set up to poll Stash for changes can end up with high load on their Stash servers. Consider for instance a CI server that has a number of builds set up for a given repository. Each of those builds polls Stash for changes and when it detects a change, it starts a new build. If your CI server supports parallel and/or chained build steps, each of these builds typically results in multiple clone operations of the same repository. The result: lots of polling for changes, and bursts of clones of a repository when a change is detected.</p>
<p>The SCM Cache plugin adds a caching layer that caches the pack files generated by Git during a clone operation on disk. This greatly reduces the CPU hit on your server and drastically improves response time when you experience repetitive requests from continuous integration. Check out some results from a recent test.</p>
<p style="text-align: center;"><img class="aligncenter  wp-image-24843" alt="scm-cache" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/scm-cache.png" width="600" height="400" /></p>
<p><a href="https://confluence.atlassian.com/display/STASH/Scaling+Stash+for+Continuous+Integration+performance">Read more</a> about installing and configuring the Stash SCM Cache Plugin on your Stash server.</p>
<h2 id="Stash2.3AnnouncementBlog-DeleteBranch">Delete Branch</h2>
<p>Git, unlike some other SCM systems, makes branching and merging your codebase easy and cheap. However, one side effect is that you can often end up with large numbers of calcifying branches cluttering up your repository, long after they&#8217;ve been merged into master.</p>
<p>Up until now, deleting branches after they&#8217;ve been merged has been a manual process from the command line (read: it usually never gets done).</p>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-24844" alt="terminal-branches" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/terminal-branches.png" width="600" height="408" /></p>
<p>Stash 2.3 provides a simple way to delete the branch when you merge the pull request. As you might expect, Stash checks on a few things before allowing the deletion–the branch being merged will not be deleted if:</p>
<ul>
<li>The branch is the default repository branch.</li>
<li>The user does not have permission to delete the branch.</li>
<li>The branch is subject to an open pull request.</li>
</ul>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-24845" alt="stash-delete-branch-blog" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/stash-delete-branch-blog.png" width="600" height="243" />Save your team time; automate the process and keep your code organized with the simple click of a box.</p>
<h2 id="Stash2.3AnnouncementBlog-GitSubmodules">Git Submodules Recognition</h2>
<p>Git submodules allow you to nest external Git repositories within the directory structure of your own repository. Submodules are commonly used to embed external codebases–such as shared libraries–which are updated independently of the main project. For a more thorough introduction to submodules, along with some common usage patterns, check out our <a href="http://blogs.atlassian.com/2013/03/git-submodules-workflows-tips/">overview on Git submodules</a>.</p>
<p>Stash 2.3 makes it easy to identify Git submodules through the Stash user interface:</p>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-24846" alt="stash-git-submodule-blog2" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/stash-git-submodule-blog2.png" width="600" height="400" /></p>
<p>If Stash recognizes the external resource hosting a particular submodule (Bitbucket or Github, for example) it will generate a link to the submodule&#8217;s home repository in the Stash UI, so you can easily click through to the relevant project.</p>
<h2 id="Stash2.3AnnouncementBlog-GetmoreoutofyourGitrepositorieswithStash">Get More Out Of Your Git Repositories With Stash</h2>
<p><strong>New to Stash? </strong><strong><a href="http://www.atlassian.com/software/stash/download" rel="nofollow">Start a free trial</a></strong> today and get up and running in a matter of minutes.</p>
<p style="text-align: center;"><a class="wac-button" style="display: inline-block; background-color: #9fc71c; border: 1px solid #99c019; border-bottom: 1px solid #89b413; border-radius: 6px; box-shadow: inset 0 1px 0 0 #c3dc71; color: #fff; font-size: 18px; font-family: kulturista-web-1,Helvetica,Arial,Verdana,sans-serif; text-decoration: none; text-shadow: 0px 1px 2px #779908; padding: 7px 15px 8px;" href="http://www.atlassian.com/software/stash/download"><span style="display: block; border-radius: 6px; cursor: pointer; padding-right: 25px; background: url('http://atlassian.wpengine.netdna-cdn.com/wp-content/themes/atlassian/images/buttonArrow.png') no-repeat center right;">Try Stash 2.3 Now</span></a></p>
<p><strong>Already using Stash? </strong>Your upgrade to 2.3 is waiting for you. Check out our <strong><a href="https://confluence.atlassian.com/display/STASH/Stash+2.3+release+notes" rel="nofollow">full release notes</a> </strong>to get started<strong>.</strong></p>
 <img src="http://blogs.atlassian.com/?feed-stats-post-id=24826" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.atlassian.com/2013/03/stash-23-crowd-single-sign-on-git-submodules/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Content Scheduler for Confluence: February&#8217;s Codegeist Add-on of the Month</title>
		<link>http://blogs.atlassian.com/2013/03/content-scheduler-for-confluence-februarys-codegeist-add-on-of-the-month/</link>
		<comments>http://blogs.atlassian.com/2013/03/content-scheduler-for-confluence-februarys-codegeist-add-on-of-the-month/#comments</comments>
		<pubDate>Mon, 25 Mar 2013 15:00:09 +0000</pubDate>
		<dc:creator>Dave Meyer</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[add-on]]></category>
		<category><![CDATA[codegeist]]></category>
		<category><![CDATA[Confluence]]></category>
		<category><![CDATA[marketplace]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[stash]]></category>

		<guid isPermaLink="false">http://blogs.atlassian.com/?p=24736</guid>
		<description><![CDATA[On February 1, we launched the latest addition of Atlassian&#8217;s add-on development competition, Codegeist. We invited developers everywhere to build add-ons for JIRA, Confluence, Stash, and our developer tools, with the promise of $65,000 in cash prizes and the opportunity to sell their add-on commercially on the Atlassian Marketplace. This year&#8217;s prize format is a little different–we&#8217;re awarding a prize for the best add-on submitted during each month of the competition. That means $10,000 each for the best add-ons submitted in February, March, April, and May, and then $15,000 for the best add-on overall and $10,000 for the best Stash add-on once the competition ends on May 31. Content Scheduler, our February winner! We&#8217;re pleased to announce that Content Scheduler, a plugin for Confluence, is the winner of the $10,000 add-on of the month prize for February! Built by bitvoodoo ag, Content Scheduler allows you to schedule dates and times for blog posts to be published, write the post ahead of time, and let Confluence automatically publish your post at the designated time. No need to remember to go to your drafts and publish the right one and the right moment, Content Scheduler creates a new &#8220;Schedule&#8221; button next to the publish button, just like WordPress. But they didn&#8217;t stop there. You also get to customize a shortlink for your blog post and can see an overview of all your currently scheduled posts. Runner up: Notifyr for Stash Our runner up for the February prize is Notifyr, a plugin for Stash by Stefankohler.  With Notifyr, users can watch specific repositories, branches, or tags and get beautifully formatted email notifications whenever someone makes changes. This highly useful add-on makes staying on top of your Stash codebase so much easier. Join me in contgratulating bitvoodoo, Stefankohler, and the other 21 fantastic entries we received for Codegeist during the month of February. We&#8217;ll be awarding a $10,000 prize for Content Scheduler, and they&#8217;ll be eligible to receive the $15,000 &#8220;Best Overall Add-on Prize&#8221;. Notifyr will be eligible for the $10,000 &#8220;Best Stash Add-on Prize&#8221;, both of which will be awarded after the contest ends on May 31. Don&#8217;t forget about the Atlassian Marketplace We saw great entries in February across the board, whether add-ons were free or paid. Don&#8217;t forget, if you build something that you believe is worth selling, you can easily sell it via the Atlassian Marketplace. To date, February Codegeist submissions have grossed almost $4,000 on the Atlassian Marketplace and have been evaluated more than 150 times. Your add-on could be next. We&#8217;re excited to see what March brings! Start building your Codegeist add-on today. Get Started!]]></description>
				<content:encoded><![CDATA[<p>On February 1, we launched the latest addition of Atlassian&#8217;s add-on development competition, <a href="http://codegeist.atlassian.com/" rel="nofollow">Codegeist</a>. We invited developers everywhere to build add-ons for JIRA, Confluence, Stash, and our developer tools, with the promise of <strong>$65,000 in cash prizes</strong> and the opportunity to sell their add-on commercially on the <a href="http://marketplace.atlassian.com/" rel="nofollow">Atlassian Marketplace</a>. This year&#8217;s prize format is a little different–we&#8217;re awarding a prize for the best add-on submitted during each month of the competition. That means $10,000 each for the best add-ons submitted in February, March, April, and May, and then $15,000 for the best add-on overall and $10,000 for the best Stash add-on once the competition ends on May 31.</p>
<h2 id="ContentSchedulerforConfluence:February'sCodegeistAdd-onoftheMonth-ContentScheduler,ourFebruarywinner!">Content Scheduler, our February winner!</h2>
<p>We&#8217;re pleased to announce that <a href="https://marketplace.atlassian.com/plugins/ch.bitvoodoo.confluence.plugins.contentscheduler" rel="nofollow">Content Scheduler</a>, a plugin for Confluence, is the winner of the $10,000 add-on of the month prize for February!</p>
<p>Built by <a href="https://marketplace.atlassian.com/vendors/28550" rel="nofollow">bitvoodoo ag</a>, Content Scheduler allows you to schedule dates and times for blog posts to be published, write the post ahead of time, and let Confluence automatically publish your post at the designated time. No need to remember to go to your drafts and publish the right one and the right moment, Content Scheduler creates a new &#8220;Schedule&#8221; button next to the publish button, <a href="http://en.support.wordpress.com/posts/schedule-a-post/" rel="nofollow">just like WordPress</a>.</p>
<p><a href="https://marketplace.atlassian.com/plugins/ch.bitvoodoo.confluence.plugins.contentscheduler"><img class="aligncenter size-large wp-image-24738" alt="Confluence Content Scheduler Screenshot 1" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/0f3d8c40-004e-4629-b64a-4b75f8434269-1-600x293.png" width="600" height="293" /></a></p>
<p><a href="https://marketplace.atlassian.com/plugins/ch.bitvoodoo.confluence.plugins.contentscheduler"><img class="aligncenter size-large wp-image-24739" alt="Confluence Content Scheduler Screenshot #2" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/56be2e4a-2091-4725-908c-4d6fdca1f810-600x293.png" width="600" height="293" /></a></p>
<p>But they didn&#8217;t stop there. You also get to customize a shortlink for your blog post and can see an overview of all your currently scheduled posts.</p>
<p><a href="https://marketplace.atlassian.com/plugins/ch.bitvoodoo.confluence.plugins.contentscheduler"><img class="aligncenter size-large wp-image-24740" alt="Confluence Content Scheduler Screenshot #3" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/12f7734f-4fcf-48f7-89b8-865321446e5a-600x293.png" width="600" height="293" /></a></p>
<h2 id="ContentSchedulerforConfluence:February'sCodegeistAdd-onoftheMonth-Runnerup:NotifyrforStash">Runner up: Notifyr for Stash</h2>
<p>Our runner up for the February prize is <a href="https://marketplace.atlassian.com/plugins/nl.stefankohler.stash.stash-notification-plugin" rel="nofollow">Notifyr</a>, a plugin for Stash by <a href="https://marketplace.atlassian.com/vendors/23324" rel="nofollow">Stefankohler</a>.  With Notifyr, users can watch specific repositories, branches, or tags and get beautifully formatted email notifications whenever someone makes changes. This highly useful add-on makes staying on top of your Stash codebase so much easier.</p>
<p><a href="https://marketplace.atlassian.com/plugins/nl.stefankohler.stash.stash-notification-plugin"><img class="aligncenter size-large wp-image-24741" alt="Stash Notifyr email notifications screenshot" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/7c44fe67-543a-430f-a552-249d2d01a06d-600x293.png" width="600" height="293" /></a></p>
<p>Join me in contgratulating bitvoodoo, Stefankohler, and <a href="http://marketplace.atlassian.com/codegeist" rel="nofollow">the other 21 fantastic entries we received for Codegeist during the month of February</a>. We&#8217;ll be awarding a $10,000 prize for <a href="https://marketplace.atlassian.com/plugins/ch.bitvoodoo.confluence.plugins.contentscheduler" rel="nofollow">Content Scheduler</a>, and they&#8217;ll be eligible to receive the $15,000 &#8220;Best Overall Add-on Prize&#8221;. <a href="https://marketplace.atlassian.com/plugins/nl.stefankohler.stash.stash-notification-plugin" rel="nofollow">Notifyr</a> will be eligible for the $10,000 &#8220;Best Stash Add-on Prize&#8221;, both of which will be awarded after the contest ends on May 31.</p>
<h3 id="ContentSchedulerforConfluence:February'sCodegeistAdd-onoftheMonth-Don'tforgetabouttheAtlassianMarketplace">Don&#8217;t forget about the Atlassian Marketplace</h3>
<p>We saw great entries in February across the board, whether add-ons were free or paid. Don&#8217;t forget, if you build something that you believe is worth selling, you can easily sell it via the Atlassian Marketplace. To date, February Codegeist submissions have grossed almost $4,000 on the <a href="http://marketplace.atlassian.com/" rel="nofollow">Atlassian Marketplace</a> and have been evaluated more than 150 times. Your add-on could be next.</p>
<p>We&#8217;re excited to see what March brings! Start building your <a href="http://codegeist.atlassian.com/" rel="nofollow">Codegeist</a> add-on today.</p>
<p style="text-align: center;"><a class="wac-button" style="display: inline-block; background-color: #9fc71c; border: 1px solid #99c019; border-bottom: 1px solid #89b413; border-radius: 6px; box-shadow: inset 0 1px 0 0 #c3dc71; color: #fff; font-size: 18px; font-family: kulturista-web-1,Helvetica,Arial,Verdana,sans-serif; text-decoration: none; text-shadow: 0px 1px 2px #779908; padding: 7px 15px 8px;" href="http://codegeist.atlassian.com"><span style="display: block; border-radius: 6px; cursor: pointer; padding-right: 25px; background: url('http://atlassian.wpengine.netdna-cdn.com/wp-content/themes/atlassian/images/buttonArrow.png') no-repeat center right;">Get Started!</span></a></p>
 <img src="http://blogs.atlassian.com/?feed-stats-post-id=24736" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.atlassian.com/2013/03/content-scheduler-for-confluence-februarys-codegeist-add-on-of-the-month/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Introducing SourceTree for Windows – a free desktop client for Git</title>
		<link>http://blogs.atlassian.com/2013/03/introducing-sourcetree-git-client-microsoft-windows/</link>
		<comments>http://blogs.atlassian.com/2013/03/introducing-sourcetree-git-client-microsoft-windows/#comments</comments>
		<pubDate>Tue, 19 Mar 2013 14:53:21 +0000</pubDate>
		<dc:creator>Giancarlo Lionetti</dc:creator>
				<category><![CDATA[Bitbucket]]></category>
		<category><![CDATA[DVCS]]></category>
		<category><![CDATA[Source Tree]]></category>
		<category><![CDATA[Stash]]></category>
		<category><![CDATA[dvcs]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[git client]]></category>
		<category><![CDATA[sourcetree]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blogs.atlassian.com/?p=24702</guid>
		<description><![CDATA[We&#8217;re thrilled to introduce the latest addition to the Atlassian distributed version control system (DVCS) family – SourceTree for Windows. SourceTree is a free Git desktop client for developers on Windows. Say goodbye to the command line and use the full capabilities of Git through SourceTree&#8217;s beautifully simple interface (and stop being jealous of what your Mac friends are using). A simple, powerful Git client SourceTree for Windows simplifies how you interact with Git repositories so you can focus on coding. Get your team up and running using common Git commands from a simple user interface Manage all your Git repositories, hosted or local, through a single client Put Git commands at your fingertips: commit, push, pull and merge with just one-click Use advanced features such as patch handling, rebase, shelve and cherry picking Connect to your repositories in Bitbucket, Stash, Microsoft TFS or GitHub Perfect for Git newbies SourceTree was built to make Git approachable for every developer &#8211; especially those new to Git. Every Git command is just a click away using the SourceTree interface. Create and clone repos from anywhere Commit, push, pull and merge Detect and resolve conflicts Search repository histories for changes Visualize your repositories SourceTree keeps track of code activity and provides an at-a-glance view of everything from projects to repositories to changesets. Use SourceTree&#8217;s Bookmarks to get a real-time, aggregated view of all your projects and repositories. Jump directly to the changeset graph to visualize changesets across multiple branches and forks. Powerful enough for Git veterans SourceTree makes Git simple for everyone, but also makes Git experts faster and more productive. Review your outgoing and incoming changesets, cherry-pick between branches, create and apply patches, rebase, shelve changesets and more with lightning speed. Git one-stop shop Atlassian offers a full complement of tools that will help you and your dev team make the most of Git. Whether you&#8217;re working on Mac or Windows, behind the firewall or in the cloud, Atlassian&#8217;s family of Git tools will bring you the power of Git while making adoption a breeze. Connect to the cloud or behind the firewall Thanks to hosting services like Bitbucket, many small teams working with Git repositories begin coding in the cloud. Connect SourceTree to Bitbucket’s free unlimited private repositories to easily manage your Git repositories from the SourceTree interface. Stash, Atlassian&#8217;s Git repository manager for Enterprises, makes it simple to manage your Git Server &#8211; behind the firewall. With powerful two-way integration, Stash and SourceTree make it easy for your team to develop with Git. SourceTree can discover and fetch your Stash repositories. And one-click clone operations get you the source you need fast. If you don’t have Stash or Bitbucket yet, not a problem, SourceTree for WIndows works with any Git repository, including GitHub, Microsoft Team Foundation Server or your own Git server. What&#8217;s coming next? We received great feedback from the SourceTree for Windows private beta users (a huge thank you). We will continue to push frequent updates and features to SourceTree for Windows [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-24770" alt="logoSourcetreePNG" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/logoSourcetreePNG-300x75.png" width="176" height="44" />We&#8217;re thrilled to introduce the latest addition to the Atlassian distributed version control system (DVCS) family – <strong><a href="http://sourcetreeapp.com" rel="nofollow">SourceTree for Windows</a></strong>.</p>
<p>SourceTree is a <strong>free Git desktop client for developers on Windows</strong>. Say goodbye to the command line and use the full capabilities of Git through SourceTree&#8217;s beautifully simple interface (and stop being jealous of what your Mac friends are using).</p>
<p><center><a href="http://www.sourcetreeapp.com/download/"><img class="aligncenter size-full wp-image-24753" alt="st-windows-beta" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/st-windows-beta.png" width="444" height="64" /></a></center></p>
<h2 id="SourceTreeforWindowsBlog-AtlassianBlogs-Asimple,powerfulGitclient" style="text-align: left;">A simple, powerful <a href="http://sourcetreeapp.com">Git client</a></h2>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-24751" alt="hero-small" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/hero-small.png" width="600" height="304" />SourceTree for Windows simplifies how you interact with Git repositories so you can focus on coding.</p>
<ul>
<li style="text-align: left;"><strong>Get your team up and running</strong> using common Git commands from a simple user interface</li>
<li style="text-align: left;"><strong>Manage all your Git repositories</strong>, hosted or local, through a single client</li>
<li style="text-align: left;"><strong>Put Git commands at your fingertips:</strong> commit, push, pull and merge with just one-click</li>
<li style="text-align: left;"><strong>Use advanced features </strong>such as patch handling, rebase, shelve and cherry picking</li>
<li style="text-align: left;"><strong>Connect to your repositories</strong> in <a href="http://bitbucket.org" rel="nofollow">Bitbucket</a>, <a href="http://www.atlassian.com/stash" rel="nofollow">Stash</a>, Microsoft TFS or GitHub</li>
</ul>
<h2 id="SourceTreeforWindowsBlog-AtlassianBlogs-PerfectforGitnewbies" style="text-align: left;">Perfect for Git newbies</h2>
<p><img class="aligncenter size-full wp-image-24747" alt="toolbar-small" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/toolbar-small.jpg" width="600" height="118" />SourceTree was built to make Git approachable for every developer &#8211; especially those new to Git<strong>.</strong> Every Git command is just a click away using the SourceTree interface.</p>
<ul>
<li>Create and clone repos from anywhere</li>
<li>Commit, push, pull and merge</li>
<li>Detect and resolve conflicts</li>
<li>Search repository histories for changes</li>
</ul>
<h2 id="SourceTreeforWindowsBlog-AtlassianBlogs-Visualizeyourrepositories">Visualize your repositories</h2>
<p>SourceTree keeps track of code activity and provides an at-a-glance view of everything from projects to repositories to changesets.</p>
<p><img class="aligncenter size-full wp-image-24748" alt="visualize-original-windows" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/visualize-original-windows.jpg" width="600" height="326" />Use SourceTree&#8217;s Bookmarks to get a real-time, aggregated view of all your projects and repositories. Jump directly to the changeset graph to visualize changesets across multiple branches and forks.</p>
<h2 id="SourceTreeforWindowsBlog-AtlassianBlogs-PowerfulenoughforGitveterans">Powerful enough for Git veterans</h2>
<p><img class="aligncenter size-full wp-image-24749" alt="advanced-features-win" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/advanced-features-win.jpg" width="600" height="333" />SourceTree makes Git simple for everyone, but also makes Git experts faster and more productive. Review your outgoing and incoming changesets, cherry-pick between branches, create and apply patches, rebase, shelve changesets and more with lightning speed.</p>
<h2 id="SourceTreeforWindowsBlog-AtlassianBlogs-Gitone-stopshop">Git one-stop shop</h2>
<p>Atlassian offers a full complement of tools that will help you and your dev team make the most of Git. Whether you&#8217;re working on Mac or Windows, behind the firewall or in the cloud, Atlassian&#8217;s family of Git tools will bring you the power of Git while making adoption a breeze.</p>
<h3 id="SourceTreeforWindowsBlog-AtlassianBlogs-Connecttothecloudorbehindthefirewall"><strong>Connect to the cloud or behind the firewall</strong></h3>
<p><img class="aligncenter size-large wp-image-24750" alt="clone-in-bb" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/clone-in-bb-600x399.jpeg" width="600" height="399" />Thanks to hosting services like Bitbucket, many small teams working with Git repositories begin coding in the cloud. Connect SourceTree to Bitbucket’s <a href="https://bitbucket.org/plans" rel="nofollow">free unlimited private repositories</a> to easily manage your Git repositories from the SourceTree interface.</p>
<p>Stash, Atlassian&#8217;s <a href="http://www.atlassian.com/stash" rel="nofollow">Git repository manager for Enterprises</a>, makes it simple to manage your Git Server &#8211; behind the firewall. With powerful two-way integration, Stash and SourceTree make it easy for your team to develop with Git. SourceTree can discover and fetch your Stash repositories. And one-click clone operations get you the source you need fast.</p>
<p>If you don’t have Stash or Bitbucket yet, not a problem, SourceTree for WIndows works with any Git repository, including GitHub, Microsoft Team Foundation Server or your own Git server.</p>
<h2 id="SourceTreeforWindowsBlog-AtlassianBlogs-What'scomingnext?">What&#8217;s coming next?</h2>
<p>We received great feedback from the SourceTree for Windows private beta users (a huge thank you). We will continue to push frequent updates and features to SourceTree for Windows users. We plan to bring all the great features that are part of SourceTree for Mac to Windows as well. What can you expect in the near future:</p>
<ul>
<li>Mercurial support</li>
<li>Git-flow support</li>
<li>Custom actions</li>
<li>JIRA integration</li>
<li>and heaps more</li>
</ul>
<h2 id="SourceTreeforWindowsBlog-AtlassianBlogs-GetSourceTreeforFree!">Get SourceTree for Free!</h2>
<p>If you’re new to Git, or just want a handy tool to make you even faster, <a href="http://www.sourcetreeapp.com/download/">download SourceTree</a> – it’s <strong>free</strong> at our brand spankin’ new website.</p>
<p><center><a href="http://www.sourcetreeapp.com/download/"><img alt="st-windows-beta" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/st-windows-beta.png" width="444" height="64" /></a></center><script type="text/javascript">// <![CDATA[
<span id="mce_marker" data-mce-type="bookmark"></span><span id="__caret">_</span>// <![CDATA[
<span id="mce_marker" data-mce-type="bookmark"></span><span id="__caret">_</span>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
// ]]&gt;</script></p>
 <img src="http://blogs.atlassian.com/?feed-stats-post-id=24702" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.atlassian.com/2013/03/introducing-sourcetree-git-client-microsoft-windows/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Instant Java provisioning with Vagrant and Puppet: Stash one click install</title>
		<link>http://blogs.atlassian.com/2013/03/instant-java-provisioning-with-vagrant-and-puppet-stash-one-click-install/</link>
		<comments>http://blogs.atlassian.com/2013/03/instant-java-provisioning-with-vagrant-and-puppet-stash-one-click-install/#comments</comments>
		<pubDate>Wed, 13 Mar 2013 17:20:16 +0000</pubDate>
		<dc:creator>Nicola Paolucci</dc:creator>
				<category><![CDATA[Stash]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[provisioning]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[vagrant]]></category>

		<guid isPermaLink="false">http://blogs.atlassian.com/?p=24710</guid>
		<description><![CDATA[Being an efficiency and productivity freak, I always try to streamline and automate repetitive tasks. As such, my antennas went up immediately when I started hearing about Provisioning frameworks; I began to incorporate them more and more in my development workflow. A perfect opportunity to take advantage of this came up while ramping up as Developer Advocate here at Atlassian. Have you heard of Vagrant yet? It is awesome. Why? It automates much of the boilerplate work we developers have to endure while setting up our platforms and toolkits. So what does Vagrant do? In their words, it allows you to create and configure lightweight, reproducible, and portable development environments. So what better testbed for this tool than the shiny new Stash 2.2 release? Objective: provide me and fellow developers a (almost) one-click install for Stash. Alright, I say almost because you need just a few dependencies if you want to use a configuration/provisioning framework, specifically a recent version of VirtualBox, Vagrant and of course git. First try out this magic for yourself and then I&#8217;ll walk you through some interesting details of the setup: Install VirtualBox and Vagrant and make sure you have git available. Open your favorite terminal and add a base virtual machine or provide your own: 1vagrant box add base http://files.vagrantup.com/precise32.box Clone the stash-vagrant-install project by typing at your command line: 123git clone https://bitbucket.org/durdn/stash-vagrant-install.git cd stash-vagrant-install Start up and provision automatically all dependencies in the vm: 1vagrant up ??? There is no step 5. *** You&#8217;re DONE! *** Note: be sure to let the process finish as it might take a while to download all the required packages. After it finishes you will be able to access your brand new Stash installation with a browser at http://localhost:7990/setup. If you need to access the vm you can ssh into the box, you will find the stash installation in the /vagrant folder: 123&#160; &#160; vagrant ssh &#160; &#160; cd /vagrant And if you need to start Stash manually you can just type: 1&#160; &#160; STASH_HOME=/vagrant/stash-home /vagrant/atlassian-stash-2.2.0/bin/start-stash.sh Under the hood Now let me explain how all this works in some detail. Under the hood I used an absolutely basic Vagrant setup and a single Puppet manifest. Here is the Vagrantfile: 12345678Vagrant::Config.run do &#124;config&#124; &#160; config.vm.box = &#34;base&#34; &#160; config.vm.forward_port 7990, 7990 &#160; config.vm.provision :puppet, :module_path =&#38;gt; &#34;modules&#34; do &#124;puppet&#124; &#160; &#160; puppet.manifests_path = &#34;manifests&#34; &#160; &#160; puppet.manifest_file &#160;= &#34;default.pp&#34; &#160; end end As you can see it only specifies the port forwarding for where Stash will run (port 7990) and Puppet as provisioning system. Nothing more. Java Installation Blues The only major requirement (and the complication) of this setup comes from the task of installing Java 7 and automatically accept the Oracle license terms. Java is not included in Ubuntu repositories for various licensing reasons therefore we have to cater for it. First we need to instruct Puppet about apt; we do this by requiring the library: 1include apt This allows us to interact with Ubuntu packages in a [...]]]></description>
				<content:encoded><![CDATA[<p>Being an <em>efficiency and productivity</em> freak, I always try to streamline and automate repetitive tasks. As such, my antennas went up immediately when I started hearing about <a href="http://en.wikipedia.org/wiki/Comparison_of_open_source_configuration_management_software">Provisioning frameworks</a>; I began to incorporate them more and more in my development workflow. A perfect opportunity to take advantage of this came up while ramping up as Developer Advocate here at <a href="http://www.atlassian.com">Atlassian</a>.</p>
<p>Have you heard of <a href="http://www.vagrantup.com">Vagrant</a> yet? It is awesome. Why? It automates much of the boilerplate work we developers have to endure while setting up our platforms and toolkits. So what does Vagrant do? In their words, it allows you to <em>create and configure lightweight, reproducible, and portable development environments</em>.</p>
<p>So what better testbed for this tool than the shiny new <a href="http://www.atlassian.com/en/software/stash/whats-new/stash-22">Stash 2.2 release</a>?</p>
<h2>Objective: provide me and fellow developers a (almost) one-click install for Stash.</h2>
<p>Alright, I say <em>almost</em> because you need just a few dependencies if you want to use a configuration/provisioning framework, specifically a recent version of <a href="https://www.virtualbox.org">VirtualBox</a>, <a href="http://www.vagrantup.com">Vagrant</a> and of course <a href="http://git-scm.com">git</a>.</p>
<p>First try out this magic for yourself and then I&#8217;ll walk you through some interesting details of the setup:</p>
<ol>
<li>
<p>Install <a href="https://www.virtualbox.org">VirtualBox</a> and <a href="http://www.vagrantup.com">Vagrant</a> and make sure you have <a href="http://git-scm.com">git</a> available.</p>
</li>
<li>Open your favorite terminal and add a <span class="text codecolorer">base</span> virtual machine or provide your own:
<pre>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">vagrant box add base http://files.vagrantup.com/precise32.box</div></td></tr></tbody></table></div>

</pre>
</li>
<li>Clone the <a href="https://bitbucket.org/durdn/stash-vagrant-install">stash-vagrant-install</a> project by typing at your command line:
<pre>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">git clone https://bitbucket.org/durdn/stash-vagrant-install.git<br />
<br />
cd stash-vagrant-install</div></td></tr></tbody></table></div>

</pre>
</li>
<li>Start up and provision automatically all dependencies in the vm:
<pre>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">vagrant up</div></td></tr></tbody></table></div>

</pre>
</li>
<li>
<p>??? There is no step 5. *** You&#8217;re DONE! ***</p>
</li>
</ol>
<p><strong><em>Note:</em></strong> be sure to let the process finish as it might take a while to download all the required packages.</p>
<p>After it finishes you will be able to access your brand new <a href="http://www.atlassian.com/software/stash/overview">Stash</a> installation with a browser at http://localhost:7990/setup.</p>
<p>If you need to access the vm you can ssh into the box, you will find the stash installation in the <span class="text codecolorer">/vagrant</span> folder:</p>
<pre>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; vagrant ssh<br />
<br />
&nbsp; &nbsp; cd /vagrant</div></td></tr></tbody></table></div>

</pre>
<p>And if you need to start Stash manually you can just type:</p>
<pre>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; STASH_HOME=/vagrant/stash-home /vagrant/atlassian-stash-2.2.0/bin/start-stash.sh</div></td></tr></tbody></table></div>

</pre>
<h2>Under the hood</h2>
<p>Now let me explain how all this works in some detail. Under the hood I used an absolutely basic Vagrant setup and a single <a href="https://puppetlabs.com/puppet/what-is-puppet/">Puppet</a> manifest. Here is the <span class="text codecolorer">Vagrantfile</span>:</p>
<pre>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Vagrant::Config.run do |config|<br />
&nbsp; config.vm.box = &quot;base&quot;<br />
&nbsp; config.vm.forward_port 7990, 7990<br />
&nbsp; config.vm.provision :puppet, :module_path =&amp;gt; &quot;modules&quot; do |puppet|<br />
&nbsp; &nbsp; puppet.manifests_path = &quot;manifests&quot;<br />
&nbsp; &nbsp; puppet.manifest_file &nbsp;= &quot;default.pp&quot;<br />
&nbsp; end<br />
end</div></td></tr></tbody></table></div>

</pre>
<p>As you can see it only specifies the port forwarding for where Stash will run (port 7990) and <a href="https://puppetlabs.com/puppet/what-is-puppet/">Puppet</a> as provisioning system. Nothing more.</p>
<h2>Java Installation Blues</h2>
<p>The only major requirement (and the complication) of this setup comes from the task of installing <a href="http://jdk7.java.net">Java 7</a> and automatically accept the <a href="http://oracle.com">Oracle</a> license terms. Java is not included in Ubuntu repositories for various licensing reasons therefore we have to cater for it.</p>
<p>First we need to instruct Puppet about <a href="http://wiki.debian.org/Apt">apt</a>; we do this by requiring the library:</p>
<pre>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">include apt</div></td></tr></tbody></table></div>

</pre>
<p>This allows us to interact with Ubuntu packages in a more advanced fashion. Then we need to add a repository to the <a href="http://wiki.debian.org/Apt">apt</a> sources, one that includes the Java installer:</p>
<pre>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">apt::ppa { &quot;ppa:webupd8team/java&quot;: }</div></td></tr></tbody></table></div>

</pre>
<p>From there, update the <a href="http://wiki.debian.org/Apt">apt</a> infrastructure in two steps, first without the extra <a href="http://www.makeuseof.com/tag/ubuntu-ppa-technology-explained/">ppa</a> repository and then with it:</p>
<pre>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">exec { 'apt-get update':<br />
&nbsp; command =❯ '/usr/bin/apt-get update',<br />
&nbsp; before =❯ Apt::Ppa[&quot;ppa:webupd8team/java&quot;],<br />
}<br />
<br />
exec { 'apt-get update 2':<br />
&nbsp; command =❯ '/usr/bin/apt-get update',<br />
&nbsp; require =❯ [ Apt::Ppa[&quot;ppa:webupd8team/java&quot;], Package[&quot;git-core&quot;] ],<br />
}</div></td></tr></tbody></table></div>

</pre>
<p>After this we automatically accept the Java license:</p>
<pre>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">exec {<br />
&nbsp; &quot;accept_license&quot;:<br />
&nbsp; command =❯ &quot;echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections &amp;amp;&amp;amp; echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections&quot;,<br />
&nbsp; cwd &nbsp;=❯ &quot;/home/vagrant&quot;,<br />
&nbsp; user =❯ &quot;vagrant&quot;,<br />
&nbsp; path =❯ &quot;/usr/bin/:/bin/&quot;,<br />
&nbsp; before =❯ Package[&quot;oracle-java7-installer&quot;],<br />
&nbsp; logoutput =❯ true,<br />
}</div></td></tr></tbody></table></div>

</pre>
<h2>Downloading and Running Stash</h2>
<p>The rest is about downloading the Stash installation file:</p>
<pre>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">exec {<br />
&nbsp; &quot;download_stash&quot;:<br />
&nbsp; command =❯ &quot;curl -L http://www.atlassian.com/software/stash/downloads/binary/atlassian-stash-2.2.0.tar.gz | tar zx&quot;,<br />
&nbsp; cwd =❯ &quot;/vagrant&quot;,<br />
&nbsp; user =❯ &quot;vagrant&quot;,<br />
&nbsp; path =❯ &quot;/usr/bin/:/bin/&quot;,<br />
&nbsp; require =❯ Exec[&quot;accept_license&quot;],<br />
&nbsp; logoutput =❯ true,<br />
&nbsp; creates =❯ &quot;/vagrant/atlassian-stash-2.2.0&quot;,<br />
}</div></td></tr></tbody></table></div>

</pre>
<p>Creating its home folder:</p>
<pre>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">exec {<br />
&nbsp; &quot;create_stash_home&quot;:<br />
&nbsp; command =❯ &quot;mkdir -p /vagrant/stash-home&quot;,<br />
&nbsp; cwd &nbsp;=❯ &quot;/vagrant&quot;,<br />
&nbsp; user =❯ &quot;vagrant&quot;,<br />
&nbsp; path =❯ &quot;/usr/bin/:/bin/&quot;,<br />
&nbsp; require =❯ Exec[&quot;download_stash&quot;],<br />
&nbsp; logoutput =❯ true,<br />
&nbsp; creates =❯ &quot;/vagrant/stash-home&quot;,<br />
}</div></td></tr></tbody></table></div>

</pre>
<p>And kicking it off in the background:</p>
<pre>

<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">exec {<br />
&nbsp; &quot;start_stash_in_background&quot;:<br />
&nbsp; environment =❯ &quot;STASH_HOME=/vagrant/stash-home&quot;,<br />
&nbsp; command =❯ &quot;/vagrant/atlassian-stash-2.2.0/bin/start-stash.sh &amp;amp;&quot;,<br />
&nbsp; cwd =❯ &quot;/vagrant&quot;,<br />
&nbsp; user =❯ &quot;vagrant&quot;,<br />
&nbsp; path =❯ &quot;/usr/bin/:/bin/&quot;,<br />
&nbsp; require =❯ [ Package[&quot;oracle-java7-installer&quot;],<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Exec[&quot;accept_license&quot;],<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Exec[&quot;download_stash&quot;],<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Exec[&quot;create_stash_home&quot;] ],<br />
&nbsp; logoutput =❯ true,<br />
}</div></td></tr></tbody></table></div>

</pre>
<p>Now we have a system that has all the required packages ready for Stash to run and that actually kicks it off in the background for you. Pretty awesome!</p>
<p>If you are interested in learning more check out the <a href="https://bitbucket.org/durdn/stash-vagrant-install/src/cc56cd22d175eba153c01d765c7943827004f987/manifests/default.pp?at=master">Puppet manifest</a> to see all the magic in context.</p>
<h2>Conclusions</h2>
<p>In conclusion: <a href="http://www.vagrantup.com">Vagrant</a> and <a href="https://puppetlabs.com/puppet/what-is-puppet/">Puppet</a> rock and can help any coder or system administrator to assemble development boxes easily. This is great when evaluating solutions or when providing complete setups with all the required dependencies. Oh and don&#8217;t forget to try <a href="http://www.atlassian.com/en/software/stash/whats-new/stash-22">Stash 2.2</a> out!</p>
 <img src="http://blogs.atlassian.com/?feed-stats-post-id=24710" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.atlassian.com/2013/03/instant-java-provisioning-with-vagrant-and-puppet-stash-one-click-install/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>(Case Study) Stash Add-on Developer Experience – StiltSoft</title>
		<link>http://blogs.atlassian.com/2013/03/case-study-stash-add-on-developer-experience-stiltsoft-2/</link>
		<comments>http://blogs.atlassian.com/2013/03/case-study-stash-add-on-developer-experience-stiltsoft-2/#comments</comments>
		<pubDate>Tue, 12 Mar 2013 05:55:36 +0000</pubDate>
		<dc:creator>Jens Schumacher</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Stash]]></category>

		<guid isPermaLink="false">http://blogs.atlassian.com/?p=24707</guid>
		<description><![CDATA[StiltSoft Headquartered: Gomel, Belarus Founded: 2010 Employees: 5 Add-ons developed: 13 StiltSoft developed one of the first add-ons for Atlassian Stash. Their first add-on,  Awesome Graphs for Stash, hit a home run with over 2200 downloads to date. We reached out to Maxim Kuzmich at StiltSoft to ask him about StiltSofts experience with developing add-ons for Stash. The Interview How long have you been developing add-ons for Atlassian products? We have been developing Atlassian add-ons for 3 years. Our first public plugin was the Table Filter for Confluence, which is still alive and asked by users. Then we developed the InPlace Editor and Talk both for Confluence and started making add-ons for JIRA and Bamboo. Who are your customers? It&#8217;s hard to say definitely. Half of our time we&#8217;re working on custom projects for our clients and the second half we spend for developing our commercial and free add-ons. What is your favourite creation? We adore our Talk add-on for Confluence because it saves a lot of our time. And of course our newest Awesome Graphs for Stash. Why did you decide to write Awesome Graphs? We started writing Awesome Graphs in order to present it at Atlassian Codegeist 2012. We couldn&#8217;t miss this competition and decided to implement a feature that Stash lacks in our opinion. It seems we hit the bull&#8217;s eye &#8212; this add-on is really asked for on the Marketplace. How was it to get started?  It was pretty easy to start because of our existing knowledge collected during making of previous products and projects. Initially we felt some lack of documentation, but it was completely compensated by the neat source code of Stash And we are glad to see that the quality of the documentation has improved since. What did you like most about Stash&#8217;s plugin system? The idea of developing the REST API at the same time as the core functionality is very good. It allows developers to start cracking with Stash in no time. Are there any parts that positively surprised you?  It&#8217;s cool to see Stash is build on top of modern technologies &#8212; Google closure library, Backbone.js, LESS. Also the speed of Stash development should be mentioned. It&#8217;s really fast!]]></description>
				<content:encoded><![CDATA[<h2 id="PluginDeveloperCaseStudy–Stiltsoft-Stiltsoft"><img class="alignright" alt="index" src="http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/index.gif" width="337" height="85" />StiltSoft</h2>
<p>Headquartered: <strong>Gomel, Belarus<br />
</strong>Founded: <strong>2010<br />
</strong>Employees: <strong>5<br />
</strong>Add-ons developed: <strong>13</strong></p>
<p><a href="http://stiltsoft.com/">StiltSoft</a> developed one of the first add-ons for <a href="http://www.atlassian.com/software/stash/overview">Atlassian Stash</a>. Their first add-on,  <a href="https://marketplace.atlassian.com/plugins/com.stiltsoft.stash.graphs"><strong>Awesome Graphs</strong> for Stash</a>, hit a home run with over 2200 downloads to date. We reached out to Maxim Kuzmich at StiltSoft to ask him about StiltSofts experience with developing add-ons for Stash.</p>
<div>
<h2 id="PluginDeveloperCaseStudy–Stiltsoft-Questions">The Interview</h2>
<h3 id="PluginDeveloperCaseStudy–Stiltsoft-HowlonghaveyoubeendevelopingpluginsforAtlassianproducts?">How long have you been developing add-ons for Atlassian products?</h3>
<div>We have been developing Atlassian add-ons for 3 years. Our first public plugin was the <a href="https://marketplace.atlassian.com/plugins/com.stiltsoft.confluence.plugin.tablefilter.tablefilter">Table Filter for Confluence</a>, which is still alive and asked by users. Then we developed the <a href="https://marketplace.atlassian.com/plugins/confluence.extra.cipe">InPlace Editor</a> and <a href="https://marketplace.atlassian.com/plugins/com.stiltsoft.confluence.talk.confluence-talk-plugin">Talk</a> both for Confluence and started making add-ons for JIRA and Bamboo.</div>
</div>
<h3 id="PluginDeveloperCaseStudy–Stiltsoft-Whoareyourcustomers?"><strong>Who are your customers?</strong></h3>
<p>It&#8217;s hard to say definitely. Half of our time we&#8217;re working on custom projects for our clients and the second half we spend for developing our commercial and free add-ons.</p>
<div>
<h3 id="PluginDeveloperCaseStudy–Stiltsoft-Whatisyourfavouritecreation/pluginyouwrote?"><strong>What is your favourite creation?</strong></h3>
<p>We adore our Talk add-on for Confluence because it saves a lot of our time. And of course our newest <a href="https://marketplace.atlassian.com/plugins/com.stiltsoft.stash.graphs">Awesome Graphs for Stash</a>.</p>
</div>
<div>
<h3 id="PluginDeveloperCaseStudy–Stiltsoft-Wasitfuntowrite?Wasitsuperpopular?Diditsolveaproblemthatannoyedyou?"><strong>Why did you decide to write Awesome Graphs?</strong></h3>
<p>We started writing Awesome Graphs in order to present it at Atlassian Codegeist 2012. We couldn&#8217;t miss this competition and decided to implement a feature that Stash lacks in our opinion. It seems we hit the bull&#8217;s eye &#8212; this add-on is really asked for on the Marketplace.</p>
</div>
<div>
<h3 id="PluginDeveloperCaseStudy–Stiltsoft-Howwasittogetstarted?Howdoesitcomparetoyourpreviousexperienceinthepluginecosystem?"><strong>How was it to get started? </strong></h3>
<p>It was pretty easy to start because of our existing knowledge collected during making of previous products and projects. Initially we felt some lack of documentation, but it was completely compensated by the neat source code of Stash <img src='http://atlassian.wpengine.netdna-cdn.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  And we are glad to see that the quality of the documentation has improved since.</p>
</div>
<div>
<h3 id="PluginDeveloperCaseStudy–Stiltsoft-WhatdidyoulikemostaboutStash'spluginsystem?"><strong>What did you like most about Stash&#8217;s plugin system?</strong></h3>
<p>The idea of developing the REST API at the same time as the core functionality is very good. It allows developers to start cracking with Stash in no time.</p>
</div>
<div>
<h3 id="PluginDeveloperCaseStudy–Stiltsoft-Arethereanypartsthatpositivelysurprisedyou?"><strong>Are there any parts that positively surprised you? </strong></h3>
<p>It&#8217;s cool to see Stash is build on top of modern technologies &#8212; Google closure library, Backbone.js, LESS. Also the speed of Stash development should be mentioned. <strong>It&#8217;s really fast!</strong></p>
</div>
 <img src="http://blogs.atlassian.com/?feed-stats-post-id=24707" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://blogs.atlassian.com/2013/03/case-study-stash-add-on-developer-experience-stiltsoft-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
