Category Archives: Technical

Key Steps for Migrating to Stash and git

This is another post in our discussion on DVCS and git (see our git category in the right column for more). Distributed version control (DVCS) makes it easy to share changes as every change has a guid or unique id. With DVCS git, you can get the best of both worlds: simple merging and centralized releases. We will continue a Wednesday post on aspects of git and git resources into May.  Atlassian provides a git tool with their Stash offering. In this post I want to go over the key steps in migrating to Stash. 

Before You Begin:

Make sure the following steps have been completed.

Staging Environment – Set up a staging Stash environment to perform a test run of your import first, for review and validation before doing the production run. Note, this is best practice for ANY major service efforts with Atlassian systems. You can use an evaluation license for this test.

Atlassian Stash, git, SVN installedInstall Atlassian Stash on staging server, as well as git and SVN. (SVN install is required for the import processing.)

Mail serverConfigure SMTP mail server settings on Stash server before you begin the import process. At the completion of the import, you will receive an email notification of success or failure (which can take a while depending on the size of your import).

SVN Permissions – You will need permissions authorization to your SVN repositories that will be imported, or the ability to import the SVN repositories “anonymously”. The importer supports both scenarios.

About Stash Logging – Stash process logging is logged to logback.xml in stash-home. Importer logging is logged to stash-home/logs.

Stash Documentation – More questions about Stash? Go here or ask us – happy to help!

Getting Started:

  1. Review the above checklist.
  2. Install AppFusions’ Source Code Importer for Atlassian Stash plugin from Atlassian Marketplace
  3. Once installed, SCM Importer will be listed among the available Stash plugins.
  4. Apply for a license for the plugin.

Running the Import in 9 easy steps!

To run the import, follow these steps (screenshots):

1. Review the “Before you begin” checklist and “Getting Started” steps.

2. Access the importer user interface, as follows:

  • Select the Source Code Import option in the Repositories menu, or,
  • Click Import… button from the Projects screen

3. In the UI, define your SCM, and URL for the SCM Repository Source.

SVN authentications:

  • If you require SVN authentication, select “Use Authentication”. You will be prompted for SVN username and password.
  • If no authentication is required, do not select this option. The import will access SVN anonymously.

SSL Certificates:

  • If the SVN server URL is https, no problem. The certificate will be detected, and this is supported.

4. Define your Stash target, as follows:

  • Select “Existing” or “Create New”.
  • Select/define project (depending on existing or new).
  • Define repository name

5. Click [Fetch SVN authors…] button to continue.

6. In the Source Code Import Details screen, your set import configurations are shown. Stash users are mapped to SVN authors, but you can override these mappings here. Check/adjust all of your SVN authors as desired, then click [Import into Stash] button to continue.

7. The Source Code Import Commenced screen is displayed. When import process has completed, an email with results will be sent to the logged in Stash user.

  • If an error occurs during the process, the import is halted and you will be emailed the results.
  • At anytime during the import, you may check progress in the Importer logs, located here: stash-home/logs.
  • Depending on the size of your import, the full process can take some time, so please be patient.

8. Repeat this process on your production server

9. Congratulations! and we’d love it if you let us know about your success!

If you have any questions on DVCS and how best to work with git and Stash contact us at: info@appfusions.com. At AppFusions we have also developed a Source Code Importer for Stash, Atlassian’s git offering. This importer significantly decreases the challenge of migrating SVN to git.

Twelve Helpful Atlassian Stash git Resources

This is another in our discussion on DVCS and git (see our git category in the right column for more). We will continue a Wednesday post on aspects of git and git resources into May.

We see DVCS and git as a major transformation in how software is created. Atlassian’s Stash provides behind the firewall git management. As fast as git is, Stash’s easy UI enables development to be even faster! Following are some useful resources on Atlassian’s Stash.

Atlassian Stash Blog – Blog posts on all things to do with Stash

Atlassian Stash Screenshots – Includes a feature tour and brief video (1:00)

Atlassian Stash Documentation – Includes getting started, administering, and extending Stash.

Atlassian Stash FAQ – Includes repositories, integration, licensing, and other topics.

Atlassian Stash Powers Enterprise Application Developers with DVCS git – Blog post interview with Atlassian’s Jens Schumacher.

Atlassian Stash Overview – Teaser Video (0:58)

Getting Started with Atlassian Stash – Video (2:35)

Installing Atlassian Stash – Video (1:55)

Create a Project in Stash – Video (1:19)

Search git Files from Atlassian Stash – Video (1:05)

Interactive Image Diff feature from Atlassian Stash – Video (0:29)

Push Code in Stash to git – Video (2:10)

If you have any questions on DVCS and how best to work with git and Stash contact us at: info@appfusions.com.

 At AppFusions,  we have also developed a Source Code Importer for Stash, Atlassian’s git offering. This importer significantly decreases the challenge of migrating SVN to git for use with Stash and is currently available from AppFusions.

CVCS vs DVCS and the Pros and Cons of DVCS git

This is another in our discussion on DVCS and git (see our git category in the right column for more). Software developers are always looking for ways to make their efforts easier. Making version control more streamlined and accessible is one area where transformative improvements are happening with git. We have been covering git and related technologies (for example, see DVCS git is trending fast in software development futures, and Atlassian Stash Powers Enterprise Application Developers with DVCS Git).  We will continue a Wednesday post on aspects of git and git resources into May.

In this post I want to go over the basic differences between version control (CVCS) and the newer distributed version control (DVCS) and then discuss the pros and cons of DVCS.  Traditional version control (CVCS) helps you backup, track and synchronize files. Distributed version control (DVCS) makes it easy to share changes as every change has a guid or unique id. With DVCS git, you can get the best of both worlds: simple merging and centralized releases.

First let’s look at CVCS as shown in the chart below. The central repository serves as the hub and developers act as separate spokes. All work goes through the central repository. This makes version control easy and sharing difficult.

With DVCS git there is more interaction directly between developers as shown below. Atlassian’s Stash is their offering in the DVCS git space. For more information see this Atlassian Stash overview.

This brings in a number of advantages.

Everyone has their own local sandbox.

  • You can make changes and roll back, all on your local machine.
  • No more giant checkins; your incremental history is in your repo.

DVCS git works offline.

  • You only need to be online to share changes.
  • Otherwise, you can happily stay on your local machine, checking in and undoing, no matter if the “server” is down or you’re on an airplane.

DVCS git is fast.

  • Diffs, commits and reverts are all done locally.
  • There’s no sketchy network or server to ask for old revisions from a year ago 

DVCS handles changes very well.

  • Distributed version control systems were built around sharing changes.
  • Every change has a guid that makes it easy to track.

Branching and merging is easy.

  • Because every developer “has their own branch”, every shared change is like reverse integration.
  • The guids make it easy to automatically combine changes and avoid duplicates.

With DVCS, there is less management.

  • DVCS systems are easy to get running since there is no “always-running” server software to install.

DVCS systems may not require you to “add” new users since you can just pick what URLs to pull from. There are also some disadvantages of the current versions of DVCS that you need to be aware of.

You still need a backup.

  • Some claim your “backup” is the other machines that have your changes, but what if they didn’t accept them all? ** What if they’re offline and you have new changes?

You still want a machine to push changes to “just in case”.

  • In Subversion, you usually dedicate a machine to store the main repo; do the same for a DVCS.

There’s not really a “latest version”.

  • If there’s no central location, you don’t immediately know whether to see others for the latest version.
  • A central location helps clarify what the latest “stable” release is. 

There aren’t really revision numbers.

  • Every repo has its own revision numbers depending on the changes.
  • Instead, people refer to change numbers that are not intuitive. But, you can tag releases with meaningful names.

If you have any questions on DVCS and how best to work with git and Stash contact us at: info@appfusions.com. At AppFusions we have also developed a Source Code Importer for Stash, Atlassian’s git offering. This importer significantly decreases the challenge of migrating SVN to git for use with Stash and is currently available at the Atlassian Marketplace.

Twenty Helpful git Resources

This is another in our discussion on DVCS and git (see our git category in the right column for more). We see DVCS and git as a major transformation in how software is created. The first two posts on this topic covered Git Gains Again with Git Related Jobs on the Rise and DVCS git is trending fast in software development futures. In this post I will be more specific and provide a listing of resources on git, the free and open source tool that is the main means to make DVCS happen. In our next git related post, we will cover CVCS vs DVCS and the Pros and Cons of  DVCS git. It will appear next Wednesday and we will continue a Wednesday post on aspects of git and git resources into May.

Official git organization Website – Founding organization of git. It provides advantages of git, documentation, downloads, and includes a community to get involved with git issues.

Wikipedia on git – Opening with, “In software development, Git (/ɡɪt/) is a distributed revision control and source code management (SCM) system with an emphasis on speed,” there is an extensive write up here.

Why git is better than X – Great summary of pros of git, by Scott Chacon of gitHub.

Aha! moments when learning git – Useful insights on why git is great! By BetterExplained.com.

How I learned to stop worrying and love git – Blog post with excellent insights and entertaining too, by Zeh Fernando.

Why I’m starting to like git. – Blog post by yet another evolved convert, to git. By @chinpen, the author compares his journey to git with Clearcase.

Why git – Blog post by gitguys.com.

Why git – Blog post by Takis Dilsen-Stokkem

Git basics – Part of a series of git tutorials created by Atlassian

Git Workflows – A set of git resources created by Atlassian

Moving Confluence Source from SVN to git – Case study blog post about Atlassian’s experience of moving to git.

Confluence, git, rename, merge oh my… – Extended post migration blog post with tips about Atlassian’s experience of moving to git.

Why git vs. Mercurial – Good comparison blog post by Charles O’Farrell of Atlassian.

How to think like git – Useful git reference site. By gitref.org

Awesome git cheatsheet – As advertised, a printable awesome git cheatsheet.

Pass-around git cheatsheet for your team – Another resource for your team to shorten the learning curve!

Interactive online git cheatsheet – Here is an online interactive git command cheatsheet to help you learn git fast!

git cheatsheet collection – A collection of git cheatsheets from around the web.

Stack overflow discussion – Very active forum discussion providing much opinion on all angles of git and other source code management tools.

Books on git, at Amazon – Collection of books on Amazon, about git.

If you have any questions on DVCS and how best to work with git and Stash contact us at: info@appfusions.com. At AppFusions we have also developed a Source Code Importer for Stash, Atlassian’s git offering. This importer significantly decreases the challenge of migrating SVN to git for use with Stash and is currently available at the Atlassian Marketplace.  Of course you can also always contact AppFusions direct if you ever have any questions on anything Atlassian – email us at info@appfusions.com anytime!

Git Gains Again with Git Related Jobs on the Rise

We have written about git, DVCS, and Stash in prior posts. See DVCS git is trending fast in software development futures and Atlassian Stash Powers Enterprise Application Developers with DVCS Git.

In the former posts, we noted how git usage has increased significantly over the past two years. As reported by Red Monk, git’s share in the version control system (VCS) industry almost tripled in two years, while the centralized version control (CVCS) share has declined by better than 50%.

Recent job openings/expertise reflect this same trend as reported on the “More @watterjames” blog. In the report, we find that there are 5,165 listings seeking people with git expertise. Traditional VCS’s,  like Subversion/SVN expertise, shows 9,114 job listings. This generally balances with git’s 25% plus share of VCS repositories and Subversions 50% plus share (per RedMonk’s article).

It is interesting that in the @watterjames blog that other types of VCS flavors are not called out as a skill at all, in comparison. (I would have thought that CVSPerforce or TFS at least would have made the list.) Also, I would have guessed that the percentage increase in job listings is actually a bit larger for git expertise, just as the git usage numbers achieved much greater percentage increases as reported through Red Monk.

Not doubting Mr. James’ reporting — just found the report to indeed be interesting when analyzing from this perspective. Git is a high focus.

==

git “job expertise” generally gets applied in two flavors of software development environments.

There is SaaS git, or hosted software-as-a-service git repositories, by GitHub and BitBucket by Atlassian. Both of these options offer limited free source code hosting.

Then there is behind-the-firewall git hosting, for more secure enterprise repositories. This market is served by GitHub Enterprise and Atlassian Stash, which are git repository managers for corporations.

Incidentally though, with git management applications (both SaaS and behind-the-firewall versions), “git expertise” is even less required – since thy whole point of these applications is to make source control management significantly easier and faster. Developers can spend time coding, with streamlined coding workflow mechanisms (like pull requests and easier merges, for example) – NOT fighting with their source control management (SCM) system.

git as a DVCS flavor overall gained its traction during the recent years’ open source community surge on hosted GitHub. That said, given that most open source contributions are by individuals, university projects, or small group teams vs. mid to large corporations,  it can easily be argued that git in the corporation is still fertile ground in terms of market potential.

Despite the impressive git trends and momentum, thousands upon thousands of corporations or development organizations — small, medium, or large — are still on legacy VCS tools, such as SVN, CVS, or Perforce. As git continues it’s high-growth pace, so too will the proliferation of secure git Enterprise solutions grow.

Both Atlassian Stash and Enterprise GitHub are really at a nacsent stage in the enterprise world still, compared with the overall potential of the market. While nearly a third of all projects are now employing DVCS, versus 14% two years ago, almost 70% of projects remain in CVCS (per Redmonk).

The coming few years will be interesting times in the VCS industry, as mainstream corporations jump into the fast-spreading git wildfire.

==

Atlassian released a press release back in October, 2012, with the title  “Atlassian Ships Major Updates to Distributed Version Control Products, Readies the Enterprise for Massive Git Adoption”.

Lets think about that: Readies the Enterprise for Massive Git Adoption.

Hmm — a strong statement, but I think the @walterjames’ job trends report on top of the Redmonk report (among much other trend factuals out there) are indeed supporting the growing git rage!

Afterall, Software IS eating the world!  😯


AppFusions recently released a Source Code Importer for Atlassian Stash that is available now. The importer significantly decreases the challenges of migrating from a CVCS code repository system to git with automation, for use with Stash. Other flavor import support is on the near-term radar (which flavor do you want most? Tell us). Please “watch” the listing and do let us know if you have questions.

Note: AppFusions provides full-service sales support for all Atlassian products. We are happy to answer any questions or provide you with quotes. We also have strong expertise to help you through any flavor of migration — simple to complicated.

We’re here to help you in your every Atlassian service need!

DVCS git is trending fast in software development futures

 

RedMonkRedMonk recently posted on Centralized vs Decentralized Version Control: 2010 vs 2012. They mentioned that the inquiries regarding decentralized or distributed version control (DVCS) technologies, such as git, has spiked. RedMonk went on to add that some organizations are considering migrations to such technologies, while others have committed to the move in general, but require data to justify their decisions internally.

gitWe recently covered a tool in this space for the Atlassian community (see Atlassian Stash Powers Enterprise Application Developers with DVCS Git). Stash incorporates the latest and greatest technologies in DVCS source code management and git, allowing you to create and manage repositories, set up fine-grained permissions, and collaborate on code in a secure, fast and enterprise-grade manner. It was released in the Spring of 2012.

In the RedMonk post, they looked at the question of DVCS usage via Ohloh over the past two years. The two most obvious changes from 2010 to 2012 are the decline in CVCS traction (centralized) and the growth of git (decentralized). git’s share, in particular, almost tripled in two years, while CVCS declined by better than 50%.

CVCS vs. DVCS, 2010-2012
CVCS vs. DVCS, 2010-2012

They also presented at chart of the leading repositories. Each decentralized repository, including git, demonstrated growth while the two centralized systems, CVS and Subversion, declined. Second, git substantially outperformed both Bazaar and Mercurial from a growth perspective.

It seems that developers are voting for decentralized git repositories with their feet, or perhaps their keyboard/mouse.

RedMonk showed further data that indicates there is still room for more growth for git. If you look at the absolute numbers, rather than growth, centralized repositories are still in the lead. Their data show that while nearly a third of all projects are now employing DVCS, versus 14% two years ago, almost 70% of projects remain in centralized version control (CVCS).

RedMonk concludes the git is the clear winner over the past few years.

Stash - git repository managementIn line with this trend, Atlassian Stash – Atlassian’s behind the firewall git repository manager – is gaining good traction in the market, as can be expected. BitBucket, their SaaS DVCS offering (supporting both git and Mercurial) is also growing fast – both being yet more alignment to this growing trend.

Source Code Importer for Atlassian StashAppFusions, in further support of this trend, has recently released a Source Code Importer for Atlassian Stash, that is available at the Atlassian Marketplace now. This importer significantly decreases the challenge of migrating SVN to git for use with Stash.

Check it out!