3 min read

7 Steps for a Painless SVN to Git Migration

By David Stannard on Sep 10, 2021 10:24:00 AM

2021-q4-blogpost-7 steps for a painless SVN to Git migration

Praecipio Consulting is frequently asked about migrating from various software version control systems to Git-centered tools such as Atlassian’s Bitbucket. Excellent news time: this is definitely possible and can be done in a painless fashion! Some organizations confidently plan and migrate by themselves. But … there’s always a “but” … be forewarned - there isn’t an “easy” button. Your success depends upon investing the effort, both in planning and in communicating with your teams. However, many organizations prefer using experienced 3rd parties who will focus on doing something not considered an organizational core competency. Praecipio Consulting often assists clients in their migrations: our approach is based upon proven tools and processes honed by multiple engagements over the past 15 years. 

Nonetheless, there still isn’t an “easy” button and the client’s involvement is integral to the final outcome as unique aspects are often uncovered.

If you still use Subversion - also known as SVN - as your software version control tool, you can be forgiven in believing that you’re alone. Searching the web yields many documents from circa 2012 which often containing phrases similar to “… 90% of developers have already migrated to Git …”. However, as recently as 2018, literature also indicates that SVN is still used because its users value its strengths over Git.

So say your organization has a business need to switch from SVN to Git. This might be because your organization has distributed development teams, or maybe the usage of SVN negatively impacts attracting new developers who expect a distributed version control tool such as Git or Mercurial.

Bottom line: you need to adopt Git and also migrate some or all of the information contained in SVN to Git; this blog assumes this means a codebase.

To better understand the implications of a migration - I suggest Stefan Holm Olsen’s explanation. Stefan led the migration of an 11 year old SVN, commercial grade codebase to a new Git codebase. All while continuing active development (https://stefanolsen.com/posts/migration-from-subversion-svn-to-git/ and https://www.atlassian.com/blog/git/atlassian-svn-to-git-migration-technical-side).

Atlassian documents a simpler case of a single SVN subfolder being migrated to a new Git repository (https://www.atlassian.com/git/tutorials/svn-to-git-prepping-your-team-migration) This may be sufficient for some do-it-yourself organizations.

In either case, it helps that the migration team understands how Git works and also the differences between Git and SVN. (If not, I suggest a quick detour to https://docs.github.com/en/github/importing-your-projects-to-github/working-with-subversion-on-github/what-are-the-differences-between-subversion-and-git and https://git.wiki.kernel.org/index.php/GitSvnComparison.) Most software engineers and developers are already familiar with Git - hence the examples address the potential SVN knowledge gap.

Stefan described a 5-step general process. The following 7-step process results from adding a preliminary step, because similar to Agile, the human aspect is primordial. Having an internal champion or two will certainly help increase the odds of a successful migration. An intermediate Git repo step is also added, although the brave may choose to go directly to the final destination. Like any undertaking, communications and scheduling are critical.

  1. Plan your migration including the often overlooked human considerations:
     - What can remain in SVN? What can / can’t be lost?
     - Understand the impact to release notes and governance
     - Identify the impact to your CI/CD environment
     - Determine the timing of the actual migration (weekend, overnight, etc)
     - Train users on how to effectively employ Git
     - The comms plan: who’s communicating, how, and the regularity of the updates
  2. Identify users and their correct names pre & post migration
  3. Choose a location for your Git repository
  4. Prune the SVN codebase
     - Address multiple folders in SVN repositories
     - Thoughtful pruning of folders, files, old and unneeded branches
  5. Create an intermediate repository to support the migration
  6. Migrate from SVN to the intermediate Git repo
  7. Migrate from the intermediate Git repo to the target production repo

Migrating from SVN to Git should not be feared. There are known processes when migrating from source code systems. Some planning and a lot of communicating will go a long ways towards a successful migration. If you need an expert hand in planning and executing your migration, contact us, we would love to help!

Topics: blog best-practices migrations plan repositories svn git custom-development
3 min read

Tips for Being a Successful UAT Tester

By Luis Machado on Jul 9, 2021 12:48:44 PM

2021-q4-blogpost-Tips for being a successful UAT tester_1

User acceptance testing (UAT) is a critical practice to employ for a multitude of products and processes.  For the purpose of this article most of my examples will be within the context of migrating or merging instances for Atlasssian products. Nonetheless, these tips can be used for other avenues: I actually picked up these habits working as a QA tester for a video game publisher.

Context is king

When testing a product or a process, such as a migration or a merger of two instances, if you come across any issues, the most important thing you can do is provide as much context as possible so the developer or admin whose responsibility it is to correct the issue can have as best of an understanding as possible of how the issue came about. The best way to achieve this is by telling them what you did (repro steps), telling them what you expected to happen (expected result), and then telling them what actually happened (actual result).  By providing the steps you took and giving the context of what you expected from those steps, followed by what actually happened, it paints a better picture for the team in charge of dealing with it.

Screenshot or it didn’t happen

Speaking of pictures, we used to have a saying on the QA team I worked with: “Screenshot or it didn’t happen.” If you can provide a screenshot of your issue, you increase the chance that the person responsible for resolving the issue will be able to address it without any back and forth.  Screenshots of any errors you see on pages, or incorrect configurations of data, help identify the exact issue, with no room for interpretation.  If you’re doing user acceptance testing, a screenshot of the UAT instance where the issue lives and what it looks like in production is even better. Again we’re trying to establish context for what your expectation was and what you actually saw.

Often during migrations or mergers, the individuals who are performing the work do not have the context of what the content is and what it should look like.  This is why user acceptance testing is such a valuable tool: It gives the users a chance to scope out the changes and see if anything looks wrong.  So it is the tester’s job to provide as much information as possible to resolve any issues. Here’s an example of an issue related to a migration:

  • Summary - Write a brief summary of the issue you’ve run into, it can be a simple statement, 2-3 sentences at most. (This can be optional depending on the medium for reporting the issue, if you’re using a Jira project to track bugs this would be important. If you’re tracking things in a table, the description would probably be sufficient)
  • Description - Provide a detailed description of what you observed. Include specifics like a link to the exact page or any particular tools used. This is a situation where less is less, more is more.
  • Reproduction Steps - Give a detailed step by step walkthrough of how you achieved the result.
  • Expected Result - At the end of the reproduction steps explain what you expected to see.
  • Actual Result - Also describe what you actually saw; be sure to indicate how this is different from the result you expected.
  • Expected and Actual results can sometimes be obvious or at least seem that way, just remember that it may be obvious to you but not necessarily to someone with a different context.
  • Screenshots - Where possible, include screenshots of the errors or issue you witnessed, and provide a comparison if possible to paint that contextual picture.

The most important thing to remember when doing testing of any kind is providing context. Always assume you can’t… assume anything! Treat it like the person you’re explaining the issue to has no idea what you’re talking about.  And if you have any questions regarding UAT, or how it can make the most of your processes, drop us a line, we'd love to help you out!

Topics: atlassian migrations tips gaming user-acceptance-testing merge
3 min read

4 Things to Look Out for When Migrating to Atlassian Cloud

By Jerry Bolden on Jun 28, 2021 3:17:41 PM

2021-q4-blogpost-Challenges moving from server to cloud

Migrating to the cloud can be a challenging move for any organization: there are many moving pieces to keep track of, and with the threat of negatively affecting both internal and front-facing operations, failure is not an option! Here are some key blockers to keep in mind when migrating to Atlassian Cloud from on-premise instances, so that you can review ahead of time just how prepared for a successful migration your company is:

  • User Management
  • Automations
  • Size of Attachments
  • Apps

User Management

User Management and how users are set up is a major difference when operating in Atlassian Cloud versus on premise. This is an important obstacle to understand and address, as the approaches for user management are different between cloud and on-premise. Key to this is how users are created and managed; equally important is identifying any users with missing or duplicate email addresses, since these cause problems with data integrity and users being able to use Filters and Queues in Atlassian Cloud. 

Automation

Automations are critical to research, as some automations may not be functional or even allowed in Atlassian Cloud: these will need to be identified and assessed to determine the balance between the value they bring and the level of effort of recreating them. 

Attachments

Size of Attachments becomes critical when using the Jira Cloud Migration Assistant, as this does not support migrating Jira Service Desk projects, which may require importing data via Site Import that forces attachments to be uploaded separately in 5 GB chunks, one chunk at a time. This alone will drive the migration of attachments to exceed a typical outage window, as the Site Import process must first conclude prior to uploading attachments. 

Jira Service Management utilization is tied to the size of the attachments as noted above. While JSM is used heavily it is currently not able to be migrated using the Jira Cloud Migration tool. With that being said this drives the use of site import. With this comes having to migrate the users and attachments separately. This becomes more moving parts during the migration outage and the coordination and timing will become even more critical.  

Apps

Jira Suite Utilities (JSU) / Jira Miscellaneous Workflow Extension (JMWE) / Scriptrunner are apps available in the Atlassian Marketplace that may be used in one or more of your current workflows. While these apps have helped to drive the creation of workflows and processes to automate certain transitions or enforce proper data collection, there is also no current migration pathway to Atlassian Cloud. While JSU has become part of the native cloud, JSU along with the other two apps must be manually fixed in all workflows migrated up to the cloud. You must run a query on your on premise data base to ensure you map out all transitions affected by the apps. Then once the migration to cloud is complete, they must be reviewed and recreated manually to ensure they are all working properly. Where possible utilizing the out of the box options, that mimic JSU, can help to move away from at least one app. 

Specific to Scriptrunner, one common scenario is the use of it in filters can cause them to no longer function, potentially causing boards and dashboard to render incorrectly. These filters must be rewritten using the Scriptrunner Enhanced Search functionality. One good example is any filter that contains the phrase "issueFunction not in" will need be rewritten as "NOT issueFunction in". It would be advisable, when doing the migration to Cloud, to open a ticket with the vendors for advise on how to fix scenarios with JQL that worked in Server/Data Center that no longer work "as-is" in Cloud.

Overall these key obstacles will get you on the correct path to understanding what you know will need to be done in preparation for starting the migration. This by no means is a complete list of the only obstacles that you can encounter, but we hope it will help you to be proactive in fixing obstacles before they become a blocker to the migration.

We are Atlassian experts, and understand how the move to cloud can be fraught with unpleasant surprises. If you have any questions, or are in need of professional assistance, contact us, we would love to help!

Topics: atlassian blog automation best-practices migrations atlassian-cloud marketplace-apps jira-service-management cloud migration
4 min read

What's the deal with Atlassian's Jira Cloud migration tool?

By Bradley Ode on Jan 14, 2021 10:45:00 AM

Blogpost-display-image_Whats the deal with Atlassians Jira Cloud migration tool (1)Atlassian's Jira Cloud is more popular than ever as companies continue to see the benefits in cloud-based technologies. For those of you already on server, the latest announcement from Atlassian might prompt you get to a head start on looking at migration options. I had the opportunity to work with Atlassian's Jira Cloud Migration Assistant (JMCA) earlier this year and now is a more pertinent time than ever to share those findings. 

What is the Jira Cloud Migration Assistant?

Jira Cloud Migration Assistant is an add-on introduced by Atlassian earlier in 2020 to help clients migrate their data from Server to Cloud. It is a migration assistant and should be viewed as such. There are many things that JCMA does well, but it does come with it's limitations and should not be viewed as a one-and-done solution for most organizations. With that being said, companies with small Jira Server footprint will get the most use out of the tool.

At a glance

What can it do?

  • Jira Software and Jira Core Project data
    • Details
    • Roles
    • Screens and Schemes
    • Workflows
      • Most native workflow functions
  • Issue data
    • Most custom fields
    • Issue history
    • Rank
    • Worklogs
    • Attachments
    • Comments
  • Boards linked to projects being migrated
  • Active users and groups from User Directories

What are the limitations?

  • Jira Service Management- no Jira Service Management data can be brought over with JCMA at the time of publishing
  • Third party app data
  • User Avatars/Timezones/Passwords
    • Passwords will need to be reset after migrating unless the client is using SSO
  • Global configuration items
    • Since JCMA operates at the project level no system settings will be brought over
  • Certain custom fields
    • Single and Multi-version picker
    • URL
    • Select List (cascading)
    • Select List (multiple choice)
    • Project picker
  • Certain workflow functions
    • Validator: required field, field changed
    • Condition: user in group, in project role, field value, subtask blocking
    • Post Function: clear field value, update custom field, copy value from other field, delegating
  • Links to entities that are not migrated

I don't have Jira Service Management, but what's this you say about app data?

Unfortunately, Marketplace Apps will need to be handled on a case-by-case basis. The JCMA tool provides a mechanism for assessing which apps can be migrated from server to cloud, but does not migrate the data via the tool itself. Instead, the tool will scan your instance and provide links or paths (i.e. instructions) to external documentation if it exists.

These paths can be a bit confusing as you are taken to the individual app vendors' sites. These can be radically different from app to app. In our case, many apps did not have a path forward and, instead, we are prompted to contact the vendor.

What about users?

JCMA will bring over all active users and groups on each migration initiation (which may or may not be what you want). You have the option of giving the users product access before running the migration, but in my opinion, it is best to wait until after the migration in case things go awry. After running the migration, the users will need to be invited to the Cloud site.

Should I use JCMA? Or perhaps another method like site import?

When the instance to be migrated is small, well managed, and with little complexity, the JCMA tool will handle your data with finesse. The JCMA tool is also more useful in merges when you are trying to merge a small, relatively simple Jira Software Server instance with a larger cloud instance. This is due to the fact that the JCMA tool itself is very project-centric. However, an abundance of app data, complex workflows, and many external integrations can be some of the things that might stop an organization from using this tool. If you are in any way unsure, contact us -- we've got your back.

My Experience

Overall, I found the JCMA tool to be a simple and effective way to transfer small amounts of project data to a cloud instance. It does what it says it will do, with only minor hiccups along the way. My experience a few months back is likely going to be different with yours as Atlassian continues to invest heavily in Cloud offerings. As always, do your own reading and don't be afraid to ask for help.

Further Reading

Topics: jira blog migrations cloud atlassian-products
3 min read

How do I migrate to Cloud if my apps aren't compatible?

By Jerry Bolden on Dec 23, 2020 1:06:11 PM

Blogpost-display-image_How do I migrate to Cloud if my apps arent compatible-

How many people are ready to move to the new hotness: Atlassian Cloud?  While this is becoming a more focused platform for Atlassian, there are some things that each company/team will need to think about as they move to the cloud:

1. What do I do if my current Server/DC apps are not compatible? 

2. What do I need to understand about my current set up within my workflows?

Apps are used to upgrade the out-of-the-box abilities of Jira, Confluence, and Bitbucket and most people not only become reliant on the apps, but may not even know they're using the apps for their day-to-day work. While there are quite a few apps operating on all three platforms (Cloud, Data Center and Server), some apps may not be available for all three platforms. For example, an app may be supported for Cloud-only or Data Center only.

While trying to migrate to Cloud, you need to understand which Apps are also compatible in Cloud and which ones are not. You can navigate to Atlassian Marketplace and set your first filter for Cloud.  Then, simply search the App name and the marketplace will do a good job giving you other options that have some of the same features as your current Data Center/Server app. Look through the recommendations and compare the current features you use with some of the recommended apps features.  The best thing is to also download a trial version of those apps in Cloud, but also if you are still on Data Center/Server, see if they have an app trial for those platforms as well.  

The other side of this will be having apps that exist on Cloud as well as on Data Center/Server but may affect your workflows.  For example, Automation has come included within the cloud, but JSU Automation Suite for Jira Workflows exists as a separate app on Data Center/Server.  While this app is now integrated into the Cloud,  when importing the data, workflows, etc. during the migration, you currently cannot use the Atlassian Cloud Migration tool and the links to the automation can fail. 

Reach out to those specific App vendors for support and open a ticket to understand what the migration path could be from Data Center/Server to Cloud. For example, In JSU's case, you have to redo all the affected workflows and their validators, conditions and post functions.  While some applications will be compatible, others will either require a little manual reconfiguration or finding ones similar in features to your current Apps.

Migrating to Atlassian Cloud is becoming more and more seamless as Atlassian continues to focus on the Cloud platform. But where apps are concerned, you will need to either find apps that already have a Cloud version or look for the Developer to review similar options and features. 

If you need guidance with your Atlassian Cloud migration, Praecipio Consulting is here to help! Contact us and one of our specialists will contact you shortly, and in the meantime, here are some helpful resources that you can start with

Topics: atlassian blog migrations cloud atlassian-solution-partner marketplace-apps
4 min read

How is Confluence Cloud different from Server/Datacenter?

By Morgan Folsom on Dec 18, 2020 1:06:00 PM

Blogpost-display-image_How is Confluence Cloud different from Server-Datacenter-

If you've recently moved from a Confluence instance that was hosted by your organization to one on Atlassian's cloud, you may be noticing some differences in how the tools work! The experience is quite different, and we know that can be a bit overwhelming if you've spent a lot of time getting used to the server UI. The change will require some adjustments, so we've provided a quick overview of things to keep an eye out for so you can get back to expertly collaborating with your team.

Navigation

Let's start with getting to Confluence! You can of course access your instance via the new link provided by your IT team https://yourcompany.atlassian.net. But, if you're looking to get to Confluence from your linked Jira instance, the application switcher looks a little different. The application switcher now lives in the grid icon(Screen Shot 2020-04-17 at 11.09.36 AM). Select that and you can navigate to any linked applications, including Confluence. 

Creating pages

Page creation looks different in the new view - you'll notice that there is now only one option to create pages, the Create button. This functionality has made it a lot more intuitive to create pages from templates! In Server, users need to consciously make the decision to create from a template (selecting the '...') or a blank page. Now when creating pages available templates will appear on the right, allowing you to filter and search through templates. With this new navigation you can even see previews of the templates before you select them. 

Keyboard shortcuts

This is the change that threw me off the most when switching between the products, because I rely very heavily on shortcuts! Here are three that I use a lot that have changed:

Action
Server/Datacenter
Cloud
Insert a Macro { /
Start an ordered list 1. 
Change header level Cmd/Ctrl + 1/2/3... # / ## / ###

 

To see a full list of shortcuts, you can select Cmd/Ctrl + Space while editing a page and a dialog will appear and display all of your options. 

Page layouts

The experience in Confluence Cloud is more mobile friendly, so pages are more narrow by default than previously. However, you can still expand your pages to span full screen if you've got a lot of content. Opening the page layout options hasn't changed - you select the icon in the editor. However, the page layout editing experience has changed so you can work on it within the body of the page, instead of at the top.

Screen Shot 2020-04-17 at 11.24.48 AM

You'll notice the arrows pointing out - those allow you to span full screen for either the entire page (top) or the specific section (bottom). The same options to edit layouts are available but you can see them in-line instead, which makes for easier navigation while working them into your pages. 

Panels

The Panel macro is one of my favorites - I like the ability to break the page up visually, and they are a great way to do that. Atlassian has revamped how panels work in Cloud so that instead of having separate macros for different types of panels: Panel, Info, Warning, Note, Success, etc. they are all just one macro, and you can switch the coloring as needed by selecting different icons. 

Screen Shot 2020-04-17 at 11.28.05 AM

Macros while viewing a page

The last change I want to highlight is perhaps my favorite. When editing Confluence previously, you might've noticed that when you insert macros, many of them appear different while editing vs. viewing the page. In cloud, we now see that macros like the Jira Issues macro pictured below actually shows the content while editing now. 

Screen Shot 2020-04-17 at 11.31.30 AM

Switching between tools or views can be tough, but with Atlassian's cloud platform you'll see a lot of changes that make the user experience run more smoothly. Now you've seen some of the changes, you're ready to hit the ground running!

Thinking about switching to Cloud? Contact us to talk about how we can help!

Topics: jira atlassian confluence migrations server cloud data-center

Praecipio Consulting is an Atlassian Platinum Partner

This means that we have the most experience working with Atlassian tools and have insight into new products, features, and beta testing. Through our profound knowledge of Atlassian environments and their intricacies, we can guide your organization as you navigate these important changes.

Atlassian-Platinum-Solution-Partner

In need of professional assistance?

WE'VE GOT YOUR BACK

Contact Us