Quantcast
Channel: Dev Blog by Axosoft
Viewing all 373 articles
Browse latest View live

GitKraken v4.0

$
0
0
This is your last chance. After this, there is no turning back. You take the blue pill: the story ends; you wake up at your computer with the same Git GUI you’ve always had. You take the red pill: you stay in Wonderland, and I show you what it’s like to develop like a Kraken…

Being the curious Kraken that he is, Keif swallowed the red pill and woke up in the construct with some new abilities. Watch this video or keep reading to see what’s new in version 4.0 of GitKraken.

Get the latest version of our Git Client:

Download GitKraken Free

 

Built-in Code Editing

The GitKraken Git Client now supports code editing! From File View, you can click to edit a file and make changes directly. You’ll notice we’ve added syntax highlighting, code hinting, a file minimap, and the ability to search your file.

edit code directly in gitkraken
Nobody has ever done this before. That’s why it’s going to work.

Once you edit a file and save, GitKraken will recognize the change, which makes it super easy to stage and commit.

When viewing file diffs, you can now easily switch between Hunk View and the new Inline or Split Views. Blame View and History View have also been updated with the same options. Plus, we’ve added word diffing and the ability to use arrows to jump to the next change.

Create and Delete Files

Do not try and bend the file. Realize the truth: there is no file.

Now you can create and delete files in GitKraken. To create a file, use the keyboard shortcut Cmd/Ctrl + P to open the Fuzzy Finder, type ‘create file’, and then type the name of your file. The code editor will open so you can jump right in and start working on your project.

In addition to creating files, you can also create folders by typing a path when creating a file.

To delete a file, right-click on the file from the Commit Panel to access the delete option.

Associate Glo Boards with Repos

If you’re using Glo Boards for task and issue tracking, you can now associate a Glo board to a specific repo using the drop-down menu.

Click the icon pictured above to set a default Glo board for your current repo. Now, when you click the Glo button in the Git Client, this board will open automatically.

Opening and Closing Repos

What if I told you there was a new way to manage your repos?

Repositories can now be closed using the keyboard shortcut Ctrl/Cmd + W or by clicking the X icon.

After closing your repos, you’ll see the new home screen with convenient shortcuts to open an existing project, initialize a local repo, or initialize a new repo on GitHub, Bitbucket, GitLab or any of our supported repository hosting sites.

It’s easier than ever to start a project, create some files, and start coding!

You’re Not Dreaming

Have you ever had a dream that you were so sure was real? What if you were unable to wake from that dream? How would you know the difference between the dream world and the real world?

All of these updates are real, and there are more!

You can now hide stashes from the graph using the right-click menu. Show the stashes again by clicking the eye icon in the Left Panel.

Now, after staging all files through the keyboard shortcut Ctrl/Cmd + Shift + S, the commit message box will be focused automatically.

If you find yourself tumbling too far down the rabbit hole, we’ve added quick shortcuts in the Help menu to access GitKraken support documentation and the Fuzzy Finder.


Migrating to Git from SVN

$
0
0

Is your current Subversion (SVN) version control system not meeting the needs of your development team? Perhaps you’ve heard of Git, but you’re so entrenched in SVN, that converting to a new version control system seems like a daunting task. Fear not! No task is insurmountable when you have the power of the legendary GitKraken on your side.

Let’s take a look at why you should consider migrating to Git from SVN, and how you can best accomplish the task—with a little help from your friend Keif the Kraken.

Advantages of Git

  1. Popularity – Git is the most widely-used version control system in the software development space right now. According to Stack Overflow’s 2017 Developer Survey, over 70% of professional developers are using Git. This means that adopting Git in your company will not only get you onto the preferred version control system in the industry, but it will also decrease the time it takes for new developers to learn your system.  
  2. Distributed Version Control – Git uses a distributed method for version control, which is a stark contrast compared to SVN’s centralized method. This means that each user clones a full version of the repository to their local machine, which is advantageous in several ways. It removes the single point of failure of the centralized repository, reduces network traffic for day-to-day operations, and allows your team to work offline.  
  3. Size and Speed – Arguably the strongest reason to migrate to Git is branching and merging. Creating a branch is effortless and is extremely lightweight, allowing your developers to work faster and merge easier.  

Here’s a quick recap:

git vs svn table

Migrate to Git from SVN

Praise the Kraken! You’ve decided to move ahead with your SVN to Git migration. So, what’s the next step? Planning is always a good thing, and Microsoft has put together a comprehensive checklist of the things to consider when migrating your team over to Git.  

Once you’ve completed your planning phase, it’s time to actually start migrating your code. The complexity of the migration depends on several things: the complexity of your SVN repository, how many merges you have done, and whether or not you care about reformatting the history from your SVN repo.

Reformatting the history involves the following additional steps:

  • Converting the commit username to first and last name, with an email address
  • Removing some additional SVN-specific metadata
  • Migrating the svn:ignore file to a .gitignore file
  • Converting your SVN tags over to git tags
  • Migrating all of your SVN branches over to your new Git remote

If you’re not concerned with preserving the objects above, go ahead and proceed with the instructions below. If you do want to migrate all of that historical data, jump down to the import and preserve history instructions.

Start Fresh

If you’re not worried about reformatting the history from your SVN repository, then the conversion process just got a whole lot easier! Git has a built-in git svncommand for cloning an SVN repository into a new Git repository. You would simply run:

git svn clone <SVN_URL> -T trunk -b branches -t tags 

Grab some coffee…

GitKraken coffee mug

This process can take some time because Git is taking each commit from your SVN repository and processing it again using Git.

Once the command completes, go ahead and open this repo in GitKraken and you should see a nice graph of your newly converted Git repo.

If you don’t have GitKraken yet, download the free hosted version or 
request a trial of GitKraken Enterprise
, our installed version!
new Git repo in GitKraken

At this point, you can jump down to setting up your new Git remote, and you’re just about done!

Import and Preserve History

The import by `git svn` does a valiant job; however, there are some additional steps that can be taken to perform a more accurate import that cleans up and reformats the history information to look more like Git history.  

First, let’s look at the author information. SVN tracks commits using a username, whereas Git has a full name and email address. You can run the following bash command in the working directory for your SVN repository to output a list of your SVN authors:

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt

You will now need to edit each author in the author-transformed.txt file to match the syntax you need for your Git author information.  

For example:

ryanp = ryanp <ryanp>

Becomes:

ryanp = Ryan Pinkus <ryanp@example.com>

Now that you have your list of authors ready, you can run the import using git svn and specify the authors-transform.txt. Copy the authors-transform.txt to a new directory C:/repo/temp and cd to that directory in the CLI.

cd c:/repo/temp

git svn clone [SVN repo URL] --no-metadata --authors-file=authors-transform.txt --stdlayout your_project

*Note: If you are seeing a blank Git repository after this command completes, then you might not have a standard layout in your SVN repo. Try removing the
--stdlayout flag.

That command will clone the SVN repository to a new Git repository in the “temp” folder of your repo directory. If you open the repo in GitKraken, you will see that the commits are now in the Git format.

commits in Git format

Next, you will want to address the svn:ignore file, if you were using one. You can run the following commands to convert the svn:ignore to a .gitignore file and commit it to your new Git repository.

cd c:/repo/temp/your-project

git svn show-ignore > .gitignore

You should now see the .gitignore in your WIP node in GitKraken. Go ahead and commit the new .gitignore to your repository.

commit .gitignore file

Next, you’ll want to convert all of the SVN tags into the proper Git tags. You can run the following command to do so:

for t in $(git for-each-ref --format='%(refname:short)' refs/remotes/tags); do git tag ${t/tags\//} $t && git branch -D -r $t; done

You can use GitKraken to check your graph and make sure all of your tags show up correctly.  

Next, you’ll want to create local branches for each of your remote refs. You can do so with the following command:

for b in $(git for-each-ref --format='%(refname:short)' refs/remotes); do git branch $b refs/remotes/$b && git branch -D -r $b; done

Once again, you can use GitKraken to view all of your branches and clean up any that you no longer need. If you still see a “trunk” branch, verify it’s pointing to the same commit as “master”.  If so, you can go ahead and delete that branch, because you will now use the “master” branch, instead. Right-click the branch name in the left panel and select “Delete trunk”.

delete trunk

Your local repo should be ready to go at this point; so you can create your remote and push the repo up to your local repo.  

Set Up Your New Git Remote

If you’re using a service like GitHub, you can use GitKraken to create the remote.  Uncheck the Clone after init option, to only create the remote repo.

initialize a repo

You’ll need the URL for the new remote repo, so click the View on GitHub.com button.
view on GitHub

Copy the URL to the repo and go back to your local repo in GitKraken.

Click the + icon in the Remote section of the left panel.

click the + in the remote section of the panel

On the URL tab, name your new remote, paste the URL to the repo into the Pull and Push URL fields, and click Add Remote.

add remote

You can now right-click each branch and tag to push them up to your remote.

right-click branch to push

If you have a large number of branches or tags, then you can use the following commands to push them up to your remote.

git push origin --all
git push origin --tags

Congratulations!

You should now have a functioning Git repo. Here are some additional resources for getting started with Git and GitKraken:

Improving Your DevOps With GitKraken

$
0
0

Issues I’ve Experienced in DevOps

My name is James Quigley, and I am the Director of IT at Axosoft. At Axosoft, I’ve implemented centralized logging infrastructure, revamped our Jenkins builds to be more efficient and parallelize stages, implemented stricter security requirements internally, utilized multi-stage Docker builds to shrink our image size, set up auth token caching in Redis, and the list goes on.

Attend my talk on ‘Improving Your DevOps with GitKraken’ at Jenkins DevOps World.

On Tuesday, September 18th, at 6:00pm, I’ll be discussing this topic more in-depth and answering questions!

Get 20% off your Jenkins DevOps World ticket using promo code: JWGITKRAKCUST and meet our team at the Expo Hall.

As you can imagine, I’ve encountered various issues along the way and found some useful solutions. So, let’s dive into those!

Importance of Configuration as Code

In the world of BLANK as a Service (fill in blank with Infrastructure, Functions, etc.), the state of your entire system isn’t purely institutional knowledge stored in the minds of your senior developers. It can be codified and reused to recreate your system exactly. This means that you can store all of your configuration in a version control system (VCS) such as Git, so that you can revert to any point in the past and track the entire history of your configuration.

I ran into the need for a VCS almost instantly; between AWS CloudFormation, Docker and Docker-Compose, Jenkins, and Ansible, the ability to quickly jump to a file and find a configuration, as opposed to trying to pull it out of the back of my mind is super valuable. The importance is compounded when you consider the value of that file being shareable or discoverable by other team members so that they are also aware of the configuration and can freely make changes within source control.

Context Switching

Another thing that I definitely underestimated starting my DevOps journey is just how many tools exist, and how many tools you might use for a single task from one end to the other. Just in the span of a few minutes I might use: code editor, source control, Jenkins to check my builds, AWS to check the infrastructure, Kibana to check the logs, Slack to check for alerts and communication, and so on.

I’d sometimes start on a task, discover something new, and end up going down a completely different rabbit hole. Occasionally, this wasn’t a bad thing, because I’d discover bugs or things we could improve upon, but other times, it was a huge distraction and slowed down my workflow considerably.

Keeping Track of What Needs To Get Done

While going down rabbit holes and discovering a bunch of other things that could be improved, I’d make a mental note to come back to it. And then when I did, I wouldn’t remember what it was I had discovered.

Even if I made an actual note to myself on a sticky note, sometimes the lack of context, when I came back to it, would make it extremely unclear what I had been talking about the day before. I.E. “Improve Dockerfile” only gives you so much of a hint.

This isn’t a problem exclusive to DevOps in any way, but it is definitely one that I ran into in my DevOps role since there was a lot of varying problems that I was responsible for handling.

Enter GitKraken

Rainbow Graph Aesthetics

GitKraken is a cross-platform Git GUI. I personally used GitKraken before I ever started working at Axosoft. I was still relatively new to Git at the time, and while basic Git operations were pretty simple, I was less sure of my abilities to properly figure things out when it came to merge conflicts and other more complicated operations.

GitKraken has a beautiful graph of your Git tree, which visualizes your branches, merges, stashes, and even other remotes.

One of the things that immediately made me fall in love with GitKraken is the in-app merge tool, which eliminates the need to open other tools.

Plus, if your team is utilizing Gitflow, GitKraken has an integration that automatically merges the proper branches in the proper order for you.

Power Editing

Furthermore, in version 4.0, we added the Monaco code editor, which brought in a huge number of features:

  • In line diffing
  • Side by side view
  • Syntax highlighting
  • File creation/deletion
  • File editing

I’ve found that many times if I’m editing a CloudFormation template, Dockerfile, Jenkinsfile etc., I don’t actually need to make a huge change or write the whole thing. Rather I just need to make a quick one-line edit to the file. Or maybe I made a mistake while editing, and I spot that when I go to commit. Now, instead of having to switch back to a different application, I can quickly make that edit inside GitKraken.

EZ Task Tracking With Glo

Glo Boards help our dev team be more productive because we track tasks and issues from inside the GitKraken Git Client. I love that there are also plugins for VS Code and Atom, and it can be accessed from a browser or the mobile apps if I’m on the go!

Glo Boards sync in real-time with GitHub Issues, which makes it easy to spread tasks out into workflows and visually track the progress of items to completion. Unlike most task tracking tools, it was actually designed for developers, so it supports markdown and has tons of keyboard shortcuts.

My DevOps Flow Using GitKraken

  1. Consult my Glo backlog, pick a task, move to “In Progress.”
  2. Assuming it’s a longer task, open VS Code and make my changes. If not, just use the GitKraken code editor!
  3. Open GitKraken to review my changes in side-by-side diff view.
  4. Fix any issues using the GitKraken code editor.
  5. Commit, push, create PR.
  6. —Switch to Glo, and move my card.

Solutions

The workflow I’ve established for DevOps using the GitKraken tools has really helped me with some of the problems that I talked about earlier:

  • With Glo Boards, I can really quickly add cards with enough context so I know what to do when I come back to them later.
  • Once I’ve gotten to work on a specific task, I can handle basic file editing, reviewing, source control, and task tracking all within the same app; so I don’t have to context switch quite as much.
  • GitKraken obviously isn’t going to enforce that you use configuration as code, but it can enhance your ability to quickly switch between repos, look at that configuration, make edits, and store changes in Git—improving your quality of work overall.

Saving Bandwidth (and Money) with Cloudflare CDN

$
0
0

The Challenge

A little while back, our VP of Product came to us with an interesting problem. We had been hosting some servers in a private collocated data center, and with those servers, came a healthy chunk of included bandwidth that we used to host our release server for the GitKraken Git Client. The release server handles all downloads of the client from our website, and also serves all the updates that our customers receive.

However, as we were moving more of our things into public clouds (AWS/Azure) and decommissioning servers at the private data center, the chunk of included bandwidth shrank and was no longer sufficient for our needs. Paying for overage charges or extra bandwidth was, and still is, cost prohibitive.

Finding a Solution

We needed a solution for distributing our downloads and updates that would fit the following criteria:

  1. Fast
  2. Cheap
  3. No Downtime (and works with existing clients)

Bandwidth is Expensive

GitKraken is no Facebook, but it isn’t tiny either. In fact, we recently broke the one-million-user mark! Our little-release-server-that-could consistently served multiple Terabytes of GitKraken downloads/updates every single day. Serving that exclusively through AWS would stick us with a bill just for bandwidth that would be way higher than we were comfortable paying. For reference, 150 TB/month costs over $11,500 USD.

aws cost

Don’t Pay For Bandwidth

Since bandwidth is expensive and we are trying to keep costs low, we figured the best thing to do is eliminate bandwidth costs. Cloudflare doesn’t charge for bandwidth; regardless of the volume, you don’t pay extra for it. Additionally, since Cloudflare’s CDN has Points of Presence (POPs) all over the world, our release files could be served to customers even faster.

Avoid Downtime

Because we like our Customer Success team and wanted to avoid tickets about failed downloads, avoiding downtime was extremely important for this transition. We also needed to do all of this without editing GitKraken’s code. Since our customers already have the client and the client knows how and where to get its updates, this change had to be completely unknown to the GitKraken Git Client already downloaded on our customers’ computers.

Step 1: Setup a new domain name

When you use Cloudflare, it actually becomes the DNS provider. For a variety of reasons, we were not prepared to do this for the entire gitkraken.com domain. Instead, we decided to create the axocdn.com domain and host that domain on Cloudflare. This would allow us to move quickly and make the changes we needed to without impacting the remainder of our DNS and infrastructure.

Step 2: Create the AWS Infrastructure

Utilizing CloudFormation, we created the requisite infrastructure running our release server code.

Step 3: Seed the new release server with the release files

Copy the release files onto the new release server so that it actually has the updates to serve to clients.

Step 4: Reduce the DNS TTL for release.gitkraken.com

We wanted to prepare for the worst-case scenarios. If something went wrong and we wanted to roll back or swap to the new server, we didn’t want to have to wait 24+ hours for our DNS change to propagate down to all the clients.

Step 5: Flip the DNS

We changed the DNS entry for release.gitkraken.com to point to the newly created release server in AWS so that traffic would begin to flow into it. Utilizing Nginx, we redirected all traffic coming to the new release server from release.gitkraken.com back to release.axocdn.com. Because axocdn.com is hosted behind Cloudflare, any users now connecting to the release server would be hitting the Cloudflare route, which caches our downloads.

Step 6: Monitor performance and bandwidth

While the tests we were running indicated everything was working, we wanted to continue to monitor to ensure that everything was running smoothly. The first few hours that we made the change, a large percentage of the requests were making it to our origin server, which made us a little bit concerned. But as Cloudflare’s POPs filled with our download artifacts, the traffic coming to our origin server shrank dramatically.

The Results

Well technically not all the traffic, but it was so close to 100% that Cloudflare’s analytics dashboard rounded it up. In reality, it was about 99.5% of the bandwidth that was cached by Cloudflare’s CDN.

We will continue to monitor our new setup to ensure it behaves as expected, but apart from new update files having to propagate out to the POPs as we create new releases, we expect traffic to remain at a fairly consistent level.

GitKraken v4.1

$
0
0

See What’s New

Watch this short video update or keep reading to see what’s new in GitKraken v4.1!

Get the latest version of the GitKraken Git Client:

Download GitKraken Free

 

Smoother than a Lumberjack

We’ve been chipping away at it, and have now made tree-mendous improvements throughout the app to increase performance and significantly reduce memory consumption! Scrolling through the graph is now smoother than a lumberjack on Timber. Plus, you’ll notice faster history and blame loading.

lumberjack scrolling through Timber
Source: imgur.com/gallery/crFOlJ3

Pull Request Templates

LumberKeif swiped right on GitHub, GitLab, and VSTS, and GitKraken now supports those pull request templates. (Note: We support Azure DevOps with legacy VSTS URLs.) The PR template dropdown menu will appear when you create a new pull request in GitKraken, which should allow you to fill in the details more easily.

pull request template

If you’re stumped on how to get started with pull request templates, check out these instructions for GitHub Pull Request templates, GitLab Merge Request templates, and VSTS Pull Request templates.

Replace Commit Author Gravatars

If you want to axe a commit author’s Gravatar image, you can now replace it with the author’s initials. Just go to Preferences → UI Preferences to update your user commit icons.

commit author initials

More Fuzzy Finder Options

We’ve spruced up the Fuzzy Finder by adding two additional options: “Open File” and “View File,” which will allow you to search for any file and then open it in GitKraken’s file editor. This should make editing files even faster than a lumberjill wielding a chainsaw at the Lumberjack World Championship (LWC).

TIL: A lumberjill is a female lumberjack, and the LWC is a very real international competition showcasing the best sawing, chopping, speed climbing, log rolling and boom-running. Mind-blown!

lumberjill
Source: buzzfeedsports.tumblr.com/post/59021041342

GitKraken Glo Boards vs Trello

$
0
0

If you’re looking for an issue tracking or task management tool, it can be hard to know where to start. There are so many tools available! Trust me, Axosoft has been building project management and bug tracking software since 2002, and we’ve seen it all.

After nearly two decades of lessons learned, we think we’ve figured out what sets the best productivity tools apart from the rest. One of the biggest insights we’ve gained is that you can’t be everything for everyone. Feature creep is all too real, and instead of making your tool more valuable for more people, it can quickly become less useful for everyone. You need to decide who you’re building your tool for, what their pain points are, and then figure out how to make their lives easier.

Our mission has never wavered: we’re focused on creating software that helps developers be more productive. So, at the core, GitKraken Glo is designed for developers and the teams who work with them.

To quickly show you how GitKraken Glo Boards stands out from competitors, I’m going to compare it to a well-known task tracking tool: Trello. I’ll show you 10 ways we designed Glo specifically with devs in mind, and by the end of this article, I bet you’ll be ready to starting using Glo instead of Trello—or whatever other issue tracking system you’re using today.

10 ways Glo outshines Trello for devs

  1. Get all the information you need in one view
  2. Find what you’re looking for with faster filtering
  3. Quickly filter cards by who they’re assigned to
  4. Don’t pay extra for calendar view
  5. Drag and drop to change due dates
  6. Customize the look and feel
  7. Get more out of GitHub Issues with workflows
  8. Track tasks in VSCode, Atom or the GitKraken Git Client
  9. Link a Glo board to a repo in GitKraken
  10. Use the tool that makes you more productive

Watch this comparison video of GitKraken Glo Boards vs Trello; or keep reading!

Sign Up for Glo Boards Free

1. Get all the information you need in one view

A big part of increasing productivity is getting things done quickly. When you’re trying to move fast, you don’t want to have to jump around to multiple screens to get the relevant information you need. This is where a major UI difference between Glo and Trello comes into play.

Trello opens a modal and locks your screen when you click to view a card. It may not sound like a fatal flaw, but it’s frustrating in those moments when you just want to browse a bunch of cards, you clicked the wrong card or you just want to double check another card before you make an edit.

The Glo UI was very intentionally designed with the details panel on the right-hand side of the screen to provide a non-intrusive way to view more information. It updates instantly when you click another card, and keyboard shortcuts like J and K (for you Vim lovers) can be used to select other cards.

2. Find what you’re looking for with faster filtering

While it’s important to have everything you need in one view, it also means you need to be able to quickly filter out what you don’t need to see!

With Trello’s search, you type your search string first, and then hit enter to review results. If you want to use card filters, you’ll find them buried in the menu.

Alternatively in Glo, you just start typing and your search results update with each additional character, and card filters work right there in your search bar! With features like these, you’ll undoubtedly find what you’re looking for faster in Glo than in Trello.

ProTip: Type @username to filter items assigned to a specific user, #labelname to filter by a specific label, and due:[date filters] to filter by when items are due.

3. Quickly filter cards by who they’re assigned to

When it comes to managing your tasks, you’ll want to know what’s assigned to you specifically. In Trello, when you click a user icon, it opens a modal to view that user’s activity and a few other things (see screenshot below).

Alternatively, when you click a user icon in Glo, it will filter your board to show only cards assigned to the selected user. And because cards can be assigned to multiple people, you can click multiple nodes to see items assigned to a duo or team.

4. Don’t pay extra for calendar view

Most devs are very accustomed to using a calendar to see what upcoming tasks are scheduled for the day, week and so on; it’s pretty helpful for planning out your time.

If you want a calendar view in Trello, you’ll need to first apply the Calendar Power-Up to your account. If you’re already using your one free Power-Up, you’ll be prompted to upgrade to Trello Business Class: a paid plan. Womp womp. 

In Glo, there’s a free, built-in calendar view. Just click the calendar icon to see tasks with upcoming due dates. Ta-da! You’ll see labels at a glance and can click cards to view more info (in that handy dandy details panel I mentioned earlier).

5. Drag and drop to change due dates

In Glo, by default, the left panel shows a list of cards that have no due dates, which makes it easy to identify cards that need a due date. Just drag and drop to assign when they are due.

Drag and drop a card from one day to another to update the due date. 

Even click any day on the calendar to add a new card that’s due on that day.

6. Customize the look and feel

You’ve probably picked up on this by now: Trello comes in basic blue.

With Glo, you have options! Glo has both a dark theme, Glo theme, and if you’re not ready to come over to the dark side—yet—we have a light theme, too.

7. Get more out of GitHub Issues with workflows

There are 31 million developers in the GitHub community who collaborate on code together; that’s a lot of tasks! GitHub Issues are what many of these developers use to track tasks, bugs and features. So, it makes sense for your task tracker to be able to pull in these items for you.

Trello doesn’t officially support GitHub Issue Sync.

Alternatively, Glo provides a sleek integration, and just like the Calendar View, it’s included for free! When you sync a Glo board with GitHub Issues, you’re able to visualize the progress of GitHub Issues through your workflow. 

You can create different workflows and labels for each board, and add different users and security permissions.

And because Glo Boards sync in real-time with GitHub Issues, changes made in either system are immediately reflected in the other. Meaning, if some team members are using either Glo or GitHub exclusively, important information is still shared seamlessly—and lightning fast!

8. Track tasks in VSCode, Atom or the GitKraken Git Client

Less context switching is super important for developer productivity.

Trello doesn’t offer Atom or VSCode plugins.

Since our focus is on developers, we have prioritized easy access to Glo from the start. Glo can be accessed directly in the GitKraken Git Client, through a browser, or using Atom or VSCode plugins. This is a game changer for productivity because developers can access their items in the tools they are already using! Simply make an update to your project and then move or update your Glo card.

9. Link a Glo board to a repo in GitKraken

GitKraken lets you link a Glo board to your current repo. Again, reducing the amount of time wasted clicking around and switching tools. With one click of the Glo button in the GitKraken Git Client, you’re always taken to your project’s Glo board.

ProTip: Use this handy feature if you typically commit and push before updating a Glo card.

Trello does not offer a comparable feature.

10. Use the tool that makes you more productive

At the end of the day, it really comes down to the way you work, and which tool supports your needs. We saw an opportunity to do task tracking differently for developers because tools like Trello weren’t cutting it. While feature parity may change, we will continue to use our expertise to find ways to make the workflow of developers faster and more productive.

You should put GitKraken Glo Boards to the test, and find out how much more efficiently you can get work done; it’s free to try all the features!

Top 20 Dev Tools for 2019

$
0
0

There are a lot of challenges when it comes to building great software. Every year, more and more software products come on the market, which means it’s becoming increasingly important to work efficiently. If you’re not the first-to-market, the cheapest, or the best, your software product isn’t going hack it in this competitive market.

As a company, Axosoft has been building software products that increase developer productivity since 2002. We were founded on a Scrum project management software by the same name. In my nearly five years with the company, we’ve developed two more products: GitKraken, a cross-platform Git client, and Glo Boards, a task and issue tracking system.

We dogfood our own products while building them, and we use a lot of other amazing software to help us release quicker and with fewer bugs. We could have put together our own list of the best development tools, but for the last two years, we’ve asked our community instead.

In keeping with tradition, we asked software engineers from elite organizations across the world to tweet their top 5 developer tools using #MustHaveDevTools. After sifting through over 1,000 tweets, I’m happy to share the 20 best developer tools with you!

Top Pick:

GitKraken: The legendary Git GUI client for Windows, Mac, and Linux.

#1️⃣  in votes for 3 years in a row

Download GitKraken Free

We reached over one million users in 2018, and we’re honored to have received the most votes for the third year in a row!

Let’s dive into which other developer tools have grown in popularity year-over-year, which are new to the scene, and which have fallen from the ranks. The Golden Kraken Awards acknowledge the other three highest-voted tools. This year, we congratulate a newcomer and two veteran tools!

golden kraken award

🏆✨The Golden Kraken Awards go to…

  1. Visual Studio Code: A code editor for building and debugging web and cloud apps.

        #2️⃣  for 2 years in a row. 🌟 VSCode isn’t going anywhere. 

  1. Docker: A platform used to build, test, and deploy applications quickly using containers.

         ⬆️  7 spots from last year.  🚢 All aboard this ship!

  1. Git: A free and open source distributed version control system.

        #4️⃣  for 3 years in a row.  🗂 Git is now the most widely used version control system.

Top 5-20 Dev Tools

  1. Postman: A powerful GUI platform to make your API development faster & easier.

        ⬆️  4 spots from last year, and 8 spots in the last 2 years. 👀 It’s one to watch!

  1. Visual Studio: Developer tools and services for any platform with any language.

        ⬆️  7 spots from last year, and tied with Docker for the largest year-over-year gain.

  1. Chrome DevTools: A set of web authoring and debugging tools built into Google Chrome.

        ⬇️  2 spots from last year.

  1. GitLab: Git repository management, code reviews, issue tracking, activity feeds, and wikis.

        ⬆️  4 spots from last year. 🦊 Watch out GitHub!

  1. Sublime Text: A sophisticated text editor for code, markup, and prose.

        ⬇️  2 spots from last year.

  1. IntelliJ IDEA: A Java IDE from JetBrains.

        ⬆️  1 spot from last year.

  1. GitHub: A web-based Git repository hosting service.

        ⬇️  8 spots from last year. GitHub had the largest drop in rankings year-over-year.

  1. Slack: Real-time messaging, archiving, and search for modern teams.

        ⬇️  4 spots from last year.

  1. Atom: A free and open source code editor.

        ⬇️  7 spots from last year.

  1. Azure: A cloud computing platform and services, created by Microsoft.

        *️⃣  New to the list, and coming in hot! 🔥

  1. Trello: A web-based project management application.

        *️⃣  New to the list. Have you seen how Glo Boards compares to Trello?

16: Google: Internet-related services including a search engine, cloud computing, and software.

        *️⃣  New to the list. 🔍 Google knocked tools like Stack Overflow off the list.

17: Android Studio: The official IDE for Android platform development.

        *️⃣  New to the list; making a comeback since its appearance in our 2017 list at #17.

  1. Xcode: An IDE for macOS/and iOS development.

        *️⃣  New to the list; making a comeback since its appearance in our 2017 list at #19.

  1. Eclipse IDE: Tools for Java developers creating Java EE and web applications.

        ⬆️  1 spot from last year.

  1. Linux: Open source software operating systems built around the Linux kernel.

        *️⃣  New to the list. 🐧

Year-over-year trends

  • Docker is the tool to watch! Now in the number 3 position, this rising star increased in popularity by 7 spots in 1 year.
  • Visual Studio tied with Docker for the largest year-over-year gain in popularity—rising 7 spots from number 13 to number 6.
  • Four new tools made the list for 2019: Azure, Trello, Google and Linux.
  • A task tracking tool made the list for the first time. Now imagine if it was inside your other favorite tools like VSCode and Atom… See how Glo outshines Trello for developers!
  • Two tools resurfaced from our 2017 list: Android Studio and Xcode.
  • Postman continues to climb the ranks, moving up 8 spots in the last 2 years. It’s another one to watch!
  • Six of last year’s top developer tools didn’t make the cut this year: PhpStorm, ZSH, Node.js, Firefox Developer Tools, Stack Overflow, and iTerm2.
  • GitLab is giving GitHub a run for its money! GitLab climbed the ranks 4 spots and overtook GitHub for the first year. While GitHub had the most significant drop in rankings from number 3 to number 11 year-over-year.
  • Git held onto the number 4 position for the third year in a row—solidifying the trend that most organizations are migrating to Git for version control.

Last Minute Gifts for Techies

$
0
0

Christmas is officially one week away, and with the stores and malls packed with stressed shoppers and crying toddlers, the task of finding that perfect gift for the special developer in your life may seem like a lost cause. Fear not! We have a few options that can save the day.

And the best part? All of these items can be found conveniently on Amazon with Prime two-day shipping or received instantly online; just in time for Christmas! Not a Prime member yet? There’s still time to activate that free trial 😉

Gifts for Developers

Ordered highest to lowest in price.

1. Harry Potter Magic Printer – $149.99

Most of the time, devs are busy working their magic on the computer, so give them the chance to be dazzled with this Harry Potter Phone and Video Printer for iPhone and Android. You can even customize the printer with your dev’s house badge. Not sure which house to brand? Have your gift recipient get sorted on Pottermore.com.


2. App-Controlled Robot Ball – $49.99

This interesting little toy can be used in a variety of fun ways. Entertain the dog from the comfort of your couch by using a mobile device to move the ball across the room, or set up a track and race with friends (you can even drive the ball with facial expressions). Still need more convincing? Devs can download the Sphero Edu app and program the bot via JavaScript.

3. #1 Software Tool for Devs: GitKraken Pro – $49

Developers are always looking for the next best tool to increase their productivity and enhance their ability to collaborate with team members. GitKraken was voted #1 in the Top 20 Dev Tools for 2019. Gift your dev an annual subscription to GitKraken Pro, which includes a Git GUI, code editor,  task tracker, and more.


4. USB Mouse Pad Hand Warmer – $19.98

Especially perfect for any female developers on your list–or anyone with poor circulation–is the USB-powered mouse pad hand warmer. This quirky and practical gift will be a warm reminder of your love all year round.

5. USB LED Fan + Clock – $13.99

Devs spend A LOT of time sitting at their computer. This gift is not only practical in that it helps them track their work hours, it will also keep them cool under pressure.

6. Magnetic Cable Ties – $7.99 pack of 5

Devs are constantly changing up their workspace, and having tools handy to keep cords organized can be clutch. These light-weight cable ties are great for keeping around in an office drawer or backpack, and come in a variety of fun colors!

Go Forth and Gift

We hope this has provided you with some ideas to spoil a hard-working developer in your life.

From all of us at Axosoft and GitKraken, we wish you and your family a teched-out holiday season and a fabulous New Year!


How to Build a Profitable Product

$
0
0

Axosoft Founder, Hamid Shojaee was recently featured on the LIVE stream podcast Documentation Not Included (DNI), hosted by Josey Howarth, Patryk Kowalik, and Chris Sebok. The show covers topics like web development, process workflows, enterprise architecture, game development, DevOps, and more.

In this episode, ‘Have App Idea, ???, Profit!’ Hamid and the hosts discuss building a product and all that entails, from early adoption to MVPs and more.

We’ve summarized some of the top points below or you can watch the recording.

Watch this quick video or keep reading to learn more!

Project Management Fundamentals

“Project management is something that is critical and significantly undervalued in development now, especially game development,” points out Patryk. “I’ve seen many companies crash and burn because of atrocious project development.”

“In essence, bureaucracy gets in the way of the doing,” agrees Chris.

Hamid, creator of Axosoft, the Scrum project management software, and VP of Product for GitKraken Glo Boards for task tracking, talks about focusing on the fundamentals of project management.

“People often make project management more complicated than it needs to be,” says Hamid.

While project management in its simplest form could be as straightforward as a written list of tasks, it can become more complicated when you need to share those tasks between team members, particularly when it comes to software development.

Disrupting an Established Market

One of the questions posed to Hamid by the hosts was how to judge the worth of an idea.

“Consider some of the world’s most successful companies, like Google,” says Hamid.  “None of them knew what their markets were worth; none of them.”

And markets with known value are saturated with established players.

Now what about disruptive technology? Products that are able to disrupt established markets.

“Disruptive technology is disruptive because no one has done it before,” explains Hamid. “It’s also very hard to accomplish.”

Products don’t have to be disruptive on a global scale, but they should be disruptive to your customer base.

Why do so many ideas fail?

With such a high failure rate for startups, sometimes it can seem hopeless for budding entrepreneurs. But fear not says Hamid:

“We have a much higher view of our prediction ability because we’ve seemingly predicted so many failures. But in reality, you essentially have a 95% accuracy rate by thinking everything is going to fail.”

Don’t let it stop you.

“If you’re going to make things, you’re going to fail. Just learn how to fail forward,” encourages Patryk.

Product Conception

Most ideas come from having a need for a specific tool, Josey points out. Which is exactly how Hamid got his start. He needed a tool that kept track of who was working on what.

“I basically needed to share my spreadsheet. Google Docs and Sheets were not available at the time; had they been, I may never have created Axosoft.”

Having insight into how to solve problems is key to success in any product category.  If you are not the user, you must have an example of a user to understand what the problems are that need to be solved.

“We live in a world where your idea probably isn’t going to be revolutionary. You’re going to have a competitor.”

It’s really difficult to judge whether your idea is better, and it’s even harder for you, as the creator or founder, to judge it without bias. Ultimately, the market decides.

User Adoption

User Adoption can come in a variety of ways, and in many cases, can be a more important metric than revenue, especially in the early stages of a software company.

So, do you give your product away for free?

“If people aren’t going to pay for your product, you have a few options,” says Hamid.

Would you rather users use your product for free and potentially grow into a paid customer down the line (or refer someone who does), or they don’t use your product at all and then use a competitor, who in turn receives those aforementioned benefits?

The Expense of Supporting Free Users

That all sounds well and good, but how do you justify paying for developers to support all of these free users? Does that allocation of resources ever trump the benefits?

“When you’re using a product for free, you typically don’t expect the same level of support as you would if you were paying for the product,” points out Hamid.  

Josey goes on to share her experience of releasing a product:

“The early adopters, and likely free users, will be the ones who will have the greatest influence on your product. They can feed you the information you will need to create a lasting, sustainable product.”

Pricing

Now, when you’re ready to start charging your users…

“You can always raise the price, but it’s much harder to lower it,” explains Hamid.

This can also help encourage early adoption. But keep in mind, “there will always be people who will be upset when you raise prices.”

MVPs

An MVP, or minimum viable product, also known by some as RAT, riskiest assumption test, stresses the impact of adapting during product development.

“MVP conceptually is a good idea,” says Hamid. “Doing highest risk things first and accomplishing the things you’re assuming you can accomplish. This is the right way to build a product.”

He goes on to note, however, that an MVP shouldn’t really be something that is just usable, it should be the minimum viable product that your customer would accept over all of the other options already available. Those are the additional qualifiers needed.

It’s really the minimally superior product. It has to be superior to what already exists in the market.

Hamid in Space?

Now, the important stuff. Would Hamid go with aliens if they came to Earth and asked him to return to space? “Oh yeah…after asking a few qualifying questions, of course.”

Thank you Josey, Patryk, and Chris for having Hamid on DNI!

GitKraken v4.2

$
0
0

Life’s a beach!

We’ve been working hard to release v4.2 of the GitKraken Git Client, which includes some incredible new features to make your work experience even easier.

Read on or watch this short video to hear more about the sunny days ahead—just don’t forget your sandals.

Get the latest version of the GitKraken Git Client:

Download GitKraken Free

Bitbucket Server Integration

No, you don’t have sand in your ears; GitKraken Pro users can now integrate their GitKraken Client with Bitbucket Server!

You’ll be able to see a list of repositories to clone and add. You can also open pull requests or initialize repositories from within GitKraken. Even expand the size of the pull request description if you need more room.

Now, who wants to build a sandcastle? All Keif needs is a shovel.

Azure DevOps

Who’s ready to jump into some clear, azure waters?

The VSTS integration has been renamed to Azure DevOps and all new Azure DevOps URLs will be supported—in addition to the older VSTS URLs.

File History and Blame View

Throw me a buoy! These cool features will feel like a lifesaver and are more discoverable than ever before. 

You can now access file history and the blame view from a file’s diff view. No more switching back or feeling lost at sea.

Error-Logging

Everyone has a cloudy day once in a while. Fear not! Basic error-logging has now been added to GitKraken.

Users can access the error log from the Help menu or Fuzzy Finder. The error log will display the ten most recent error toasts that have occurred within the application.

Easy File Filtering

We get it; there are a lot of fish in the sea and sometimes it can be difficult to find the exact one you need.

Now, when users click the View All Files option, they can access an optimized filter bar. This should make it easier to find the files you’re looking for.

New Shortcuts

Keif is always thinking of ways to increase convenience in GitKraken, and the Kraken has released more awesome shortcuts for our users:

    • Fetch (Cmd/Ctrl + L)
    • Create a branch (Cmd/Ctrl + B)
    • Open file history in the Fuzzy Finder (Cmd/Ctrl + H)

Now there’s no excuse for not making it to the bonfire.

Hover Tooltips

Feeling like you’ve got your head in the sand? We’ve released some new ways to uncover the information you need.

We’ve updated the hover tooltips to show more information throughout the app. Users can now hover over stashes, commits, branches, repo names, or files to access more related information.

Learning Git: What is Git LFS?

$
0
0

Git LFS stands for Large File Storage and is a tool many developers use to save space when working with binary files.

Watch this quick video or keep reading to learn more!

Download our Git GUI client for free, to easily work with your repos.

Download GitKraken Free

What is Git LFS?

In short, Git LFS is a Git extension that allows users to save space by storing binary files in a different location. Let’s dig in a bit to learn more about why you would want to use Git LFS and how it works:

Why use Git LFS?

When working with repositories that contain audio, video, or image files (aka binary files), any changes made to those files are not tracked through Git in the same way that non-binary files are tracked.

While Git does a great job of tracking change sets in text files, changes made to binary files are tracked as an additional copy of the file.

Imagine you are working with a binary image that takes up 100MB on your repo and you make a change to that file. Git will track that change on a file that also takes up 100MB of space and will continue to do that for each change made.

If you want to do some quick math… Four file changes made to a binary 100MB file would result in a total of 500MB used (100MB original file + 100MB change file + 100MB change file + 100MB change file + 100MB change file = 500MB).

Because these changes also get pushed to your remote, your remote will also grow in size, decreasing the speed in which you can clone, push, pull, or perform other operations with your repo.

How does Git LFS save time?

When using Git LFS, your commits will point to a lightweight reference object instead of pointing back to the binary file (you’re actually pushing the original binary file to an LFS repo).

Now, when you clone the LFS repo or check out a branch in an LFS repo, you will only pull the version of the binary file that you need from the LFS server, saving space and time.

How does Git LFS work in GitKraken?

Before using Git LFS in GitKraken, you must first install Git LFS on your machine. You will also need to set up your LFS server, and if you’re just getting started, GitHub has a built-in free option available here.

Once installed, navigate to Preferences to access the LFS option.

You may then initialize LFS for an existing repo and specify the file types you need the application to track.

After you complete the initialization process, an LFS icon will appear in the toolbar, allowing you to interact with the files on your LFS server.

Where can I view LFS files?

All files tracked by LFS will be marked with the LFS icon in the Right Panel of GitKraken.

When you click to view the diff of such a file, you will see the SHA reference instead of your large file.

Finally, you may check the option to initialize the LFS application when you Init any repo from GitKraken.

We hope this helps explain the benefits of using a Git Large File Server and how easy it is to utilize the application in GitKraken.

Inspiring Resolutions from Women in Tech

$
0
0

Here we are at the start of yet another year, and the term ‘New Year’s Resolutions’ is buzzing. It’s common for women to feel the societal pressures of constant self-improvement; whether it’s earning that promotion, losing those last five pounds, spending more time with family, cooking healthier meals (or cooking at all…), or expanding your professional network, our intentions are always respectable.

But then one month goes by and we forget about the goal we set for ourselves for the year ahead. Or we realize it was never realistic or attainable.

For this year, we’ve solicited real-life resolutions from women in tech and our #ItWasNeverADress community and hope we can collectively inspire you to reach your 2019 goals!

Minimizing Clutter

“In 2019, I am trying to focus on the finer things in life.  Studies show that minimizing the “clutter” in your life can actually help reduce stress and increase productivity so I am giving up all non-essential shopping, including clothing, shoes, houseware, you name it for a full year. (I can sense my Amazon Prime account crying.) Instead my focus will be directed towards traveling, spending time with family, and doing activities I enjoy.”

MJ Patent is the Senior Marketing Manager of Global Lifecycle Management Services at TechData in Tempe, AZ

Raising Other Women Up

A cause very near and dear to our #ItWasNeverADress hearts is empowering those around you, especially when we’re talking about women in STEM.

“To transfer my STEM program for girls to my alma mater.”

-L.R., St. Franklin, Pennsylvania

“Continue to advocate for STEM and women in trades.”

-D.S., Karratha, Western Australia

“Advocate for my students and find them more college opportunities”

-M.G, Sun City, Arizona

“Continue standing up against sexism, racism, and ableism.”

-A.S., Dortmund, Germany

“Set up more internal networking opportunities to increase the female quota in management positions.”

-S.R., Vienna, Austria

Be a Continuous Learner

“I did a complete career pivot a few years back, changing from event management into front-end web design. I’ve already learned and taught myself A LOT of new things, but I want to continue to increase my expertise and hone my craft. I want to be a continuous learner and remember there is no ceiling to how far I can expand my knowledge.”

-Diane Lo is a Web Designer at Axosoft (she does all the work on our GitKraken website too!)

Finally Put My Feelings First

“My New Year resolution is to finally putting my feelings and needs first and remove people in my list who try to steal my sunshine. We only have one life to live (and I’m halfway through mine), so I’m going to make the best of the time I have left.”

-D.A., Smyrna, Delaware

Being Present

Being present and limiting digital communication were common themes. Even as a tech company, we understand the need for interpersonal connections and in-person interactions.

“I will be more present with the people I love and spend less time on my phone.”

-A.G., Ellington, Connecticut

“Moving away from digital communications and going back to face-to-face.”

-E.A., Ontario, Canada

Seeing with My Heart

“I just watched Eat, Pray, Love for the first time. Through my work, I’m lucky enough to travel to different countries and collaborate with lots of software engineers. So this year, I’m going to stop seeing with my eyes, and start seeing with my heart. Because there is always more than what meets the eye!”

Ruth Vela, Manager of International Engineering Teams, Nextiva

Focusing on Mental Health

There were several responses from our community related to improving mental health and achieving happiness, two things that are often overlooked, particularly by women.

“Let go of frustration and ultimately be happier.”

-S. P., Merced, California

“To live deliberately.”

-L.C., Melbourne, Australia

“To continue to learn the lessons life presents to me. Soaking up moments and living in the now. Loving others for who they are. Forgiving when necessary.”

-C.D., Kennewick, Washington

Go Take 2019 By Storm

We hope this collective list of goals from women across the world will help you identify your 2019 resolution and make this year one of the best yet.

When you’re feeling low and undervalued, just remember: #ItWasNeverADress. There’s a superhero inside of all of us. Now go unlock your powers!

Enhancing Your DevOps Workflow in 2019

$
0
0
DevOps Workflow

Continuous Integration. *I’m listening…* Continuous Delivery. *Go On…* DevOps. *YAAAS!*

DevOps methodology has been taking over the headlines as companies big and small are adopting this strategy for development and sharing their experiences. Amazon, Target, and Netflix are just a few companies “killing it at DevOps” according to TechBeacon. Following these processes has resulted in organizations improving and releasing their products faster than their competition while increasing in-depth communication and decreasing context-switching.

In this article, we will show you how you can enhance your DevOps workflow using three tools that work together to bring users speed, automation, and efficiency.

Formula 1 celebration

The three awesomely-useful tools we will look at in this article are: GitKraken Git Client, Bitbucket Server, and Jenkins. Start your engines! 🏎💨

The Flow

1.  Start with an intuitive environment for working with your Git repositories.

Download GitKraken For Free
And begin a free Pro trial in-app or upgrade to Pro for $49.

Note: You will need Pro to unleash the power of one of GitKraken’s newest features:
Bitbucket Server integration.

2. Authenticate with Bitbucket Server.

GitKraken Authentication

3. GitKraken has always allowed users to push and pull changes to Bitbucket Server over HTTPS/SSH, but in the v4.2 release we introduced new, valuable features for Bitbucket Server users such as cloning, working with remotes, and managing pull requests.

This brings me to the third step in the flow:

Clone an existing Bitbucket Server repo or initiate a new one using the Bitbucket Server integration.

Repository Management

4. You have code to write, right?! 🤣 Use GitKraken’s in-app file editor to write and edit code like the engineering-champ you are. *Did I mention the in-app file editor has syntax highlighting, a file mini-map, and auto-complete for many programming languages?*

GitKraken File Editor

5. The code looks good and has been committed. Use the pull request feature via the Bitbucket Server integration in GitKraken to start your PR.

Integrations with popular Git repository hosting sites–like BitBucket Server–help bring actions you would typically perform elsewhere into GitKraken. Don’t you love the feeling of taking action outside of your Git client, without having to leave your Git client? Thank you, integrations! 🙌

Create Pull Request

6. Your changes passed code review with flying colors! 👏 Your PR is now merged.

Bitbucket Server Integration

7.  Welcome to the final phase of the flow! Trigger a test build in Jenkins using a webhook from Bitbucket Server to Jenkins. In our example, whenever a PR is merged to the production branch, a test build is triggered in Jenkins.

Bitbucket Webhook to Jenkins

DevOps Can Now Be Yours

To sum it up, here are a few benefits of using these tools and this flow:

  • Know if code is broken before it’s deployed
  • Remove human-error and the need to “babysit” your build processes
  • Eliminate context-switching between tools
  • Integrate code changes from all team members

And there you have it! In seven quick steps, with the ease and skill of a Formula 1 driver, we’ve navigated the course and showed you how three independent tools can be used together. 🏎💨 We hope you feel ready for your champagne shower at the top of the podium.

If you already have Bitbucket Server with webhooks and Jenkins, I bet you can perform the steps mentioned above in less time than it took you to read this article…. Find out for yourself!

DevOps vs Agile

$
0
0

The various methodologies that have popped up in the last decade related to software project management are overwhelming. How many roadmaps do we need to encourage successful software development, innovation, and faster deployment?  

Widespread project management styles include Waterfall, Agile (scrum, kanban, hybrids), Rapid Application Development (RAD), Six Sigma, and many, many more. A more recent methodology that’s trending across the dev world is DevOps, the integration between development and IT operations.

In GitLab’s 2018 Global Developer Report, the authors draw a harsh distinction between teams using an Agile vs DevOps infrastructure.

Organizations that have adopted DevOps are more likely to deploy on demand and prioritize automation than those practicing Agile.
GitLab 2018 Global Developer Report

Well, we are here to tell you: it doesn’t have to be one or the other!

At GitKraken, we believe in the value of both Agile and DevOps working structures and constantly employ both across our teams to achieve customer-focused, innovative, and collaborative development projects in an efficient and timely manner.

That’s right, DevOps and Agile can actually compliment each other! 

Teamwork, Collaboration, and Communication

The foundational elements of Agile include teamwork, self-organization, and accountability; traditionally, this methodology was designed for small teams. Collaboration and communication are also fundamentals of any successful DevOps infrastructure, with more of a focus on cross-department communication.

At GitKraken, we’ve found that Agile thinking, while more easily perfected on a smaller scale, can be expanded within the larger organization.

DevOps is Agile applied beyond the software team.
Ian Buchanan, Agile and DevOps: Friends or Foes?

What’s our secret? Each department must understand and value the culture of collaboration.

The team at GitKraken has a few incredible tools at our disposal (and developed internally) to enhance our project management and task tracking: Axosoft, a robust tool that supports Scrum, kanban and hybrid models of Agile, and Glo Boards, a lightweight task tracking tool offering a kanban board.

Axosoft is designed to help teams more accurately plan sprints and releases and offers great functionality to rank tasks and estimate team member workloads and output.

Axosoft UI

Axosoft also has an extremely powerful help desk platform designed to help teams collect and evaluate feedback, another foundational value of Agile. This is one of the GitKraken Customer Success Team’s main sources for obtaining user feedback.

Our Glo Boards integrate seamlessly with our Git Client and offer intuitive drag-and-drop features, impressive search filters, and easily shareable boards and cards.

Glo Boards UI

Both tools allow team members across departments to stay in constant communication and help provide full transparency of work items for everyone to view.

Collecting Feedback

While the structural elements of DevOps may have more of a focus on internal feedback and communication between departments, when paired with the fundamentals of Agile, which prioritize customer input and user requests, you really can get the best of both worlds.

However, it’s not realistic to assume that all departments can be collecting feedback for improvements from all sources. At Axosoft, we evenly distribute the work across multiple teams.

Customer Success and Marketing take on the bulk of customer feedback via support tickets, social media, Slack, phone calls, etc. and immediately pass it on to our Development and QA teams. Department leads can then evaluate and prioritize work items and the status of deployment is then communicated back to the user directly.

Developer using GitKraken

We also constantly provide internal input for updates to our own software, a strategy more commonly associated with DevOps. This is a feat that becomes easier to achieve when you dogfood your own products, something the GitKraken team is very proud of.

The intimate understanding that our developers maintain of our own systems make them capable of troubleshooting issues along with our IT Operations team, so resolutions are found and implemented faster.

Keeping a Fast Pace

Agile and DevOps are both designed to achieve faster development and deployment. While Agile has more of a focus on the software development side, and DevOps more of a focus on continuous integration.

Both methodologies aim for continuous deployment. In this regard, DevOps is perhaps a more sophisticated iteration, offering a more organized foundation and collaboration with IT operations.

The IT team at Axosoft moves just as fast as our development team. They understand the role that operations must play in the product improvement process and are willing to keep pace with our dev team in order to achieve quality code AND our high standards of security, performance, and reliability.

Similarly, our developers understand and are held accountable for the consequences of their development choices and changes. Our Glo Boards make it easy to provide comprehensive context to working items so everyone can stay on the same page.

Let’s Talk Automation

Automation is absolutely essential to achieving DevOps success, but is not necessarily an intention of Agile, nor does it conflict.

One could argue that automation can improve any working style, and the addition of a focus on automation in DevOps compliments Agile flows.

Implementing Changes

With DevOps, there is more of a focus on early testing and continuous implementation, but a fair balance can be found when melding with Agile thinking, which has more of a focus on the actual software development.

Improving DevOps

At GitKraken, our DevOps methodology helps slow down the development process, but not to the point that our timelines suffer, and only to the point that we more effectively uncover and fix bugs before deployment.

Our Agile habits of implementing and adapting to changes late into the development process, helps our team anticipate for unplanned work, regardless of where we are in the delivery timeline.

Incremental experimentation is critical for avoiding crippling delays in deployment. This allows us to better understand in advance how departmental hand-offs can cause delays and we can constantly inspect and adapt.

Defining and Delivering Value

The principles of Agile focus on delivering value to the customer, while DevOps focuses on delivering sustainable business value. Integrating both methodologies makes it possible to deliver value to the business and customer in tandem.

Of course, customer-focus is an extremely high priority for the GitKraken team, but constant and complimentary attention on delivering business value is what makes our organization sustainable and prepared for growth.

While our DevOps side helps us consider the larger implications of development changes, our Agile side prevents our team from getting paralyzed by an endless cycle of technical improvements.

In the End, It’s All About Culture

At the end of the day, it’s all about your company’s overarching culture, leadership, and individual team members.

GitKraken Team

If your department heads respect each other, understand long-term company objectives, and are led by executives who provide transparency and realistic deadlines, it’s much easier to achieve the highest levels of both Agile and DevOps success.  

Top Tech Conferences of 2019

$
0
0

If you haven’t already, now is the time to evaluate your professional development plans for 2019, including which educational events you’re going to travel to and pay for. And if you’re in the tech industry, no doubt you have at least one big conference on your wish list this year.

Hamid DevWeek SF

With so many choices out there, and new events popping up every year, it’s important to research the top choices closely before making your decision.

Good news! We’ve done that for you. The GitKraken team asked our global network to share which conferences they were planning to attend this year using the hashtag #TopDevConferences. We’ve curated the top 10 just for you. 👀🙌

1️⃣ Google I/O – May 7-9

Location: Shoreline Amphitheater – Mountain View, CA

Google I/O 2016

General Event Info: Google I/O brings developers from across the world together for a look at Google’s latest dev products and hands-on training workshops.

Price: $375-$1,150

Early-Bird Deadlines: This conference is extremely unique as you must apply to purchase tickets. Applications for the ticket drawing ran from 2/21 through 2/27 and winners were notified on 2/28.

Discounts Available: Full-time students, professors, faculty and staff at high schools or higher education institutions receive a discounted price of $375.

PRO TIP: Google also releases a teaser puzzle prior to opening ticket registration and sharing full event information publicly. Anyone who solves the puzzle reportedly receives a free ticket to the event.

What makes this conference unique? This event is truly a look inside of one of the globe’s most pervasive tech giants. Throughout the conference, office hours and app reviews are available, allowing attendees the chance to meet one-on-one with Google experts.

2️⃣ DevWeek SF Bay Area: February 20-24

Location: Oakland Convention Center – Oakland, CA

GitKraken Team DevWeek NY

General Event Info: DevWeek SF Bay Area is one of the largest conferences in the world, with an expected attendance of 8,000 developers, engineers, managers, software architects, and more.

Price: $50-$995

Discounts Available: Students and government employees were eligible for a 30% discount and groups of three or more are eligible for a 25% discount.

Professional Credits/Training: DevCareer Summit– this portion of the event explored what it takes to become a senior developer, architect, product manager, dev manager, or CTO.

Hiring Opportunities: Hiring Expo – San Francisco’s largest hiring expo took place on February 20 and was free for all candidates. Around 1,000 hireable developers attended.

What makes this conference unique? The variety of topics at DevWeek SF Bay Area makes this event stand out from the rest. Tracks included focuses on: developer sales and marketing; developer management; artificial intelligence development; microservice and container design; blockchain development; virtual reality and 3D software; trends in coding languages; innovations in web infrastructure; mobile web and cross-platform development; DevOps, new database technology, and developer tools.

View more information on the conference tracks here.

New for 2019: DevExec World took place for two days on Feb 20-22 and was designed for technical executives and leaders. It featured peer collaboration, guidance on hiring and retaining talent, effective product management, and team skill development.  

Did you miss the event in Feb? DevWeek also hosts events in New York and Austin. The dates for DevWeek NYC 2019 are June 18-20 and the dates for DevWeek Austin 2019 have not yet been announced.

3️⃣ Apple Worldwide Developer Conference (WWDC) – June 3-7

Location: McEnery Convention Center – San Jose, CA

Apple WWDC 2011

General Event Info: Apple hosts this event annually, inviting developers from around the world to attend to learn about new products and development tools.

Apple has yet to release comprehensive information about this year’s event, but MacRumors.com is speculating the following topics for 2019’s conference:

  • iOS
  • macOS
  • watchOS
  • tvOS

Price: $1,599

Registration Deadlines: There is not early-bird pricing available for this event and the chance to purchase tickets is provided at random. Registration has not been released for the 2019 event yet, but we expect it to begin in March.

Discounts Available: Apple reportedly offers scholarships for tickets and accommodations for students and STEM organizations who apply. For 2018, hopeful recipients competed for tickets by creating an interactive scene in Swift Playgrounds. We expect a similar challenge and process for 2019.

What makes this conference unique? Akin to the spirit of Google I/O, WWDC provides an intimate view into Apple’s products, development strategies, and leadership. This event also offers one-on-one workshops with top Apple engineers.

4️⃣ Open Source Summit North America – August 21-23

Location: Hilton San Diego Bayfront – San Diego, CA

Open Source Summit North America

General Event Info: This event is a premier conference in North America showcasing the open source community. Developers, architects, technologists, and other industry leaders attend to collaborate and learn about the latest and most innovative open solutions.

Event organizers are combining three conferences—LinuxCon, ContainerCon, and CloudOpen—under one umbrella: Open Source Summit.

Price: $800-$1200

Early-Bird Deadlines: $800 Early-Bird pricing ends on May 20; $950 Standard pricing ends on July 22; and $1,200 Late pricing starts on July 23.

Discounts Available: The following discounted options are available for this event at a price of $275:

  • Hall Pass: access to Keynote Sessions, Sponsor Showcase, daily breakfast and breaks, and the Attendee Onsite Reception.
  • Academic: Full-time students and faculty members. Valid ID is required.
  • Hobbyist: If you are paying for yourself and are active in the Linux community. There are a limited number of these passes available; interested parties can apply by emailing events@linuxfoundation.org.

Nonprofit professionals can also receive a 20% discount on the full-event registration price. To receive the discount code, email events@linuxfoundation.org.

What makes this conference unique? This event is specifically designed to connect the open source ecosystem, with particular attention on Linux systems. Topics will focus on the latest trends in open source and open collaboration, including DevOps culture, how technology is shaping the future of cloud, and how containers are helping to drive cloud-native approaches.

5️⃣ Microsoft Ignite – November 4-8

Location: Orange County Convention Center – Orlando, FL

microsoft ignite

General Event Info: Microsoft Ignite features the latest tools and tech shaping the future of cloud, teamwork, productivity, and intelligence. The event is geared towards IT and data professionals and enterprise developers.

Price: Pre-registration is currently open for this event but pricing details have not yet been released.

Professional Credits/Training: One of the most popular features at this event is the Learning Labs, which offer deep-dive, interactive sessions with Microsoft experts on 365, Azure, Dynamics 365, and more.

Throughout the event, Microsoft will provide a total of 100 instructor-led workshops and over 50 hands-on training labs.

What makes this conference unique? Attendees can hear from the experts themselves. That’s right, the people teaching you about the products are actually the people who built them. How cool is that?!

Can’t make it to Orlando in November? Microsoft Ignite is going on tour! Checkout this list of events to see if Ignite is coming to a city near you.

6️⃣ JSConf EU – June 1-2

Location: Arena Berlin – Berlin, Germany

JSConf EU

General Event Info: This is one of the largest JavaScript community conferences in Europe and will feature educational sessions on GraphQL, DevOps, Node.js, progressive web apps, machine learning, and JavaScript frameworks like React, Vue, and Angular.

Price: $900-$967

Early-Bird Deadlines: Regular Pricing of $900 ends on February 27; pricing then goes up about $10 every other week until March 22 when the price reaches $967. See the full sales schedule here.

Discounts Available: Scholarships are available to applicants from underrepresented groups. Prospective applicants can find information and instructions to apply here.

What makes this conference unique? This is a not-for-profit event and is touted proudly as a labor-of-love conference presented by the JavaScript community. The two-day event features 45 sessions on a variety of JavaScript topics.

Can’t make it to Germany in June? JSConf offers a variety of conferences around the world, including events in the US (Carlsbad, Honolulu), Budapest, Argentina, Brazil, Columbia, Singapore, Iceland, Belgium, China, and more.

7️⃣ PyCon – May 1-9

Location: Huntington Convention Center – Cleveland, Ohio

Pycon

General Event Info: PyCon claims to be the “largest annual gathering for the community using and developing the open-source Python programming language.”

The first two days of the event are labeled as Tutorial Days and are comprised of intensive three-hour sessions. The middle three days of the conference feature scheduled talks, a sponsor expo, open spaces that attendees can customize for personal and collaborative use, lightning talks, and more. Finally, the remaining four days involve development sprints where the community can come together to develop collaboratively.

Price: $125-$700

Discounts Available: If you are paying for yourself to attend, there is a discounted rate of $400, and for students the cost is $125.

Parties requiring additional financial assistance can apply for financial aid on this page.

What makes this conference unique? This conference is produced and funded by a 501(c)(3) organization, so they are able to keep their costs comparatively lower than similar conferences of this size and nature.

As part of the 2019 conference, PyCon is hosting the Python Education Summit for teachers and educators dedicated to enhancing coding literacy through Python. The goal of the Summit is to bring like-minded educators together to share best practices and strategies for improving CS training worldwide.

8️⃣ DockerCon – April 30-May 2

Location: Moscone Center – San Francisco, CA

DockerCon 2018

General Event Info: Developers, system admins, architects, IT professionals, and more come together for a three-day event to invest in their containerization skills.

Price: $1,350-$1,600

Early-Bird Deadlines: The price of $1,350 is available through April 15 until it raises to $1,600.

Discounts Available: There is discounted pricing offered for students. Students can email DockerCon@Docker.com with proof of a valid student ID to receive the discount.

Professional Credits/Training: DockerCon offers training courses which can be purchased on top of your conference registration for $100 each. Each course is two-days and led by by a Docker Instructor. You can find more information about the topics covered here.

What makes this conference unique? This is the #1 conference specifically focused on the container industry and container technology.

9️⃣ Laracon Online – March 6

Location: Online

General Event Info: As an alternative to their European and US conferences, Laracon presents an extremely affordable and accessible option for their global network to attend a full-day digital event.

Talks will feature Laravel’s more creative and innovative leaders and technologists. The best part? Everything will be recorded and available for access after March 6th.

Price: $25

What makes this conference unique? Certainly the price and location make this event standout. At just $25 a head, and accessible from anywhere in the world with Internet connection, Laracon Online is a no-brainer for any devs working with the Laravel framework.

Want to watch with friends? Checkout this list of viewing parties to see if there’s one in your city, or host one yourself!

🔟 Microsoft Build – May 6-8

Location: Washington State Convention Center – Seattle, WA

Microsoft Build 2012

General Event Info: This is Microsoft’s premier event for developers and will cover topics like app development, cloud, AI, data, IoT, and more.

Price: $2,395

What makes this conference unique? If you’re part of the Microsoft Developer Network or develop on a Windows platform, it would be hard to justify missing this event. Microsoft Build is created and manufactured with the developer in mind and has highly-specific content.

GitKraken 2019 Top Picks

We loved hearing from our network about the conferences and events you plan to attend this year! Our top four picks for 2019 are below.

P.S. If you’re planning to attend any of these conferences, we urge you to find the GitKraken booth and say hi! We always have fun Kraken swag.

This made #2 on the community-curated list this year, and we agree! DevWeek is a great event for developers at a variety of stages, from beginner to advanced.

DevOps World | Jenkins World is a specialized conference targeting IT executives and professionals focused on continuous delivery. Topics give attendees the opportunity to learn, explore, and help shape the future of Developer Operations (DevOps).

Another DevOps focused event, DOES, targets DevOps practitioners of large organizations. Attendees can expect to learn about the evolving methods needed to implement widespread operational change on a larger scale.

Touted as a conference that celebrates the “people and projects that push technology forward,” GitHub Universe is a really fun, unique event. The organizers do a great job of creating an immersive experience that almost feels more like a festival than a conference.

GitHub Universe

But don’t be deterred by the colors and lights; the speaker tracks and workshops provide excellent training for anyone contributing to the software development ecosystem.

We hope this article has proven informative and will help you decide where to travel and learn this year. Now go forth and plan your professional development investments for 2019!

GitKraken Git GUI vs the CLI

$
0
0

If you’re a software developer, there’s a good chance you’ve got an opinion on using the command line. Many devs consider mastering the command line a feat of experience and skill. They are extremely proud, and protective, of their Git CLI fluency.

For some devs, it’s downright romantic; the CLI offers an intimate experience with your computer. It’s like having a back-and-forth conversation with your machine.

man talking to AI machine

We’re not even going to address that now… That’s a whole other blog post.

But like Dan, a seasoned and industry-respected software developer, explains, we very much believe in the immense benefits offered by GUIs that just aren’t possible in the CLI:

I certainly know Git very well, and honestly, think I’m far faster and more efficient in a Git GUI than I could possibly be in the command line. And I’m certainly not slow in the CLI.
Dan Clarke, Maintainer, The Devil’s Advocate Blog & Co-Organizer, .Net Oxford Group

CLI vs GUI

As we’ve already established, devs who love the CLI, LOVE the CLI. And many initially find GUIs, like GitKraken, an offense to their years of grinding code the hard way.  Emphasis on the HARD WAY.

GUI-shaming is real. Check out this Twitter post from Ben Halpern, an influential programmer and Founder of Dev.to.

GUI tweet from Ben Halpern

Ben was so intrigued by the responses he received that he wrote this follow-up article, “On GUI-shaming and a mountain of hot takes,” to highlight some of the comments.

GUIs are not ‘for people who don’t want to invest the time and effort in trying to find out how something really works.’ They are a tool like any other.
Ben Halpern, Founder of Dev.to

We agree with Ben, and we’re here to tell you “command line junkies” that it’s time to modernize your tool belts.  

GUIs Have Won

Axosoft Founder, Hamid Shojaee, recently spoke at DeveloperWeek in Oakland on this very topic.

Imagine, for example, a smartphone, and how the experience would change if you had to type commands line by line instead of selecting icons. Instead of one touch, the process would be extended exponentially.

$ Run Instagram

Loading Instagram...

Life is too short to still be using the command line. GUIs have won and are the way of the future!

Improve Your Life with GitKraken

A common mantra for devs is “work smarter, not harder.” There’s no reason GUIs should be the exception to this rule.

Let’s dive into how the GitKraken Git Client can increase your productivity and improve collaboration and communication with your team.

GitKraken Graph Diagram

Life’s too short! Reject the CLI and Release the Kraken!

Download GitKraken Free

Viewing Commit History

In Hamid’s video, he compares the experience of viewing the history of your commits in the command line vs the beautiful rainbow graph in GitKraken.

In the CLI, the process entails typing:

git log --all --decorate --oneline --graph

And then you get this…

CLI Terminal ASCII Graph

Whomp, whomp. “ASCII art” on the left showing branches and merges and jibberish lines containing the SHA (Secure Hash Algorithm), which is supposed to provide you helpful context regarding which file changes have been made…

Looking at symbols confused

In GitKraken, you can clearly see when every commit was made and by whom; all your branches and where they were merged; and you can click any commit to quickly open the file and see the diff! More on that to come…

GitKraken Commit Graph

Commit Context 

Unlike the command line, GitKraken offers users the ability to add substantial context to each commit, which is easily available for others working on your project to see.

Commit information can be found in the Commit Panel, which lives on the right of the graph, and is a fan favorite feature. Try saying that five times fast…

You can see both unstaged and staged files here. Simply select a file to view the changes line by line in Diff View, showing you exactly what changes were made to your code. GitKraken highlights the altered code, allowing you to find the context you need in seconds.

GitKraken Diff View

Merge Conflict Editor

One of GitKraken’s most significant features is the Merge Conflict Editor, and frankly, could easily make the GUI > CLI argument on its own. There’s simply nothing comparable when using the command line.

When you run into a merge conflict in GitKraken, simply click the conflicted file to open the editor.

You’ll see three different sections: the two side-by-side sections on the top half show you the different versions of the file you’re trying to merge. The third section on the bottom half shows the output, allowing you to quickly identify where the issue is occurring, making it a breeze to select what you want to keep or discard.

GitKraken Merge Conflict Editor

The Merge Conflict Editor in GitKraken allows you to see the conflicting versions of code side-by-side AND even allows you to edit the output in the text editor if you’re using the Pro version. The best part? You’ve accomplished all of this inside one tool, saving time and preventing context loss.

This entire process would have been not only longer using the command line, but also more grueling and stressful. Resolving a merge conflict without a tool like GitKraken takes your focus away from an otherwise smooth workflow, risking loss of context, time, and mental energy.

Rebasing with Less Risk

When it comes to rebasing, GitKraken can lend a helping hand, especially when things don’t go as planned.

Making a Technical Mistake

Identifying what went wrong can be extremely difficult in the command line, but GitKraken offers intuitive resources to help you determine where the issue is stemming from and how to fix it.

Similar to the error notification you receive when a merge conflict occurs, GitKraken also lets you know when a rebase has failed and allows you to quickly see why and how to resolve it. Beautifully illustrated in this Learning Git with GitKraken video: Rebasing in GitKraken vs CLI Part 2, the experience is much shorter and smoother when using a GUI.

As shown in the video, if you run into a conflict when rebasing in the CLI, you must leave your central workspace to open your text editor, find the conflict, edit the text to resolve the issue, save your changes, and then go back to the command line to stage the changes, run the changes, and then continue your rebase. Now here’s to hoping you don’t get another conflict message, forcing you to repeat the entire process again.

Collaboration is Effortless

Collaboration can be notoriously difficult in the CLI; as we already covered, it’s very hard to tell who did what to which file. This can affect accountability and cause costly and continuous delays spent dissecting lines of code.

GitKraken is legendary for the central Commit Graph, which allows you to see who is working on which files in your project.

GitKraken Gravatars and Branch Colors

Your team members are easily distinguishable by their Gravatar images; each collaborator and all of their commits are displayed on the graph in a unique color, making for a beautiful, and useful, technicolor roadmap of your project for all to see.

GitKraken was Built around UX

As the name implies, a graphical USER interface is focused on you, the user (well, maybe not all GUIs – but you get the idea). GitKraken is designed with a heavy emphasis on the user experience – meticulously ensuring that every Git operation is designed to make developers more productive.

How many hours did you spend coding last week? Might as well enjoy them, right?

Even the most die-hard CLI user will be more productive with a web UI…due to fundamental strengths of GUIs that ultimately are tied to traits inherent in humans.
Micah Linnemeier, UX designer at IBM

The bread and butter of a GUI is visual manipulation of screen space and the ability to utilize a mouse or clicking.  Two things that come much more naturally, and much faster to humans than typing: sight and touch.

drag-and-drop functionality

We’ve already mentioned the next-level multi-color central graph, but GitKraken also has two side panels that add even more value to the user’s visual experience and allow for continuous context.

The Commit Panel is your hub for staging and committing changes.

The Left Panel shows branches, remotes, pull requests, stashes, tags, and submodules. You can easily filter files and other information by typing into the field at the top of the panel.

Your Mouse is Your Friend

Many of our users comment that they didn’t realize how much they missed using their mouse in the CLI until they experienced the functionality offered by hovering and clicking in GitKraken.

Furthermore, GitKraken does an incredible job of providing helpful, intuitive prompts for actions you can take at certain times during your workflow. Below are a few examples of some of our most popular functions.

  • Drag-and-Drop

Drag-and-drop one branch to another to generate a list of possible user actions like merging, rebasing, or a pull request from an integrated repo.

  • Toolbar

The toolbar at the top of the GitKraken Git Client provides quick and easy access to several major commands including pushing and pulling. All you have to do is move and click your mouse!

GitKraken Toolbar Icons

We would be remiss if we didn’t mention the magical UNDO button here, which can be a lifesaver when you perform a merge incorrectly.

You can also access the shiny GLO button from your toolbar which allows users to swap over to our Glo Boards for task and issue tracking, without having to open another software program.  

  • Right-Click

When you right-click on any commit, a drop-down menu of options will appear allowing you to create a branch, cherry pick, reset, or revert the commit. When you right-click on the top commit of a branch, you are given a drop-down menu with even more options.

Users can also right-click to view context on specific files or commits and access more features. Furthermore, you can right-click anywhere from the right Commit Panel to create new files.

  • Hover Tooltips

GitKraken provides the ability to hover over many items in your dashboard to reveal extended information. Users can also hover over labels to see a list of all refs.

Any keyboard aficionados out there? Don’t worry, we didn’t forget about you! Our

Fuzzy Finder was created specifically with you in mind and provides access to our extensive inventory of shortcuts when you click Ctrl + P for Windows and Linux, or Cmd + P on Mac.

GitKraken Fuzzy Finder Cheatsheet

Speaking of shortcuts, users can see a full list of all supported keyboard shortcuts by clicking Ctrl + / for Windows and Linux, or Cmd +  / for Mac.

Improve Your Workflow with GitKraken

I sometimes encounter people who feel it’s “better” to use command line Git, but for very ill-defined reasons. These people may feel like they should work in the shell, even if it leads to Git-avoidance, frequent mistakes, or limiting themselves to a small set of ~3 Git commands. This is counterproductive.
Jenny Bryan, Software Engineer, RStudio & Adjunct Professor, UBC

Listen to Jenny… It’s time to make the switch to the GitKraken Git GUI. Join more than one million users who have improved their workflow experience and increased productivity and team collaboration.

GitKraken v5.0

$
0
0

We’ve been working like direwolves to deliver some incredible new features to the GitKraken Git Client. We hope you’re as excited as we are for these new features and improved performance.

We bring you: The Mother of All Releases!

Get the latest version of the GitKraken Git Client:

Download GitKraken Free

Interactive Rebase

Interactive rebase is coming… here.

Raise your chalice!

Now, when you drag-and-drop a branch to rebase, you’ll see an option for interactive rebase.

After clicking to open the Interactive Rebase view, you can choose an action for each commit:

  • On the left, you can pick, reword, squash, or drop commits.
  • Use up and down keys to navigate commits.
  • Double-click a commit to reword.
  • Drag-and-drop to move commits up and down.
  • Use keyboard shortcuts to perform all of these actions!
trigger interactive rebase

Once you’ve made your selections, hit the Start Rebase button; the interactive rebase will begin, and the graph will update to reflect your changes. A process so easy and efficient, you’ll feel like Brienne of Tarth with a sword.

Other Ways to Access Interactive Rebase

You can also right-click on a commit in the graph to access the interactive rebase option for its child commits.

rebase functionality in GitKraken

Additionally, when you right-click a commit, there are now options to:

  • Edit commit message.
  • Drop commit.
  • Move commit.
  • Or select multiple commits to squash without needing the HEAD commit.

G.P.G.  

No, you don’t have dragon scales in your ears… GitKraken now supports GPG commit signing. Pour the red wine!

 

Tyrion Lannister cheers wine

Not sure what commit signing is or what it entails? Check out our commit signing with GPG support docs to learn more.

In short, GPG commit signing helps prevent another user from fraudulently using your alias to make commits, and is something companies have been more frequently enforcing to adhere to stricter security compliance standards. After all, there’s only one true King of the North.

After installing and configuring GPG on your computer, you must then generate a GPG key. This can be done easily inside your GitKraken account. Once you have your unique key, you can share it with your remote hosting service (or configure GitKraken to do this for you), and begin using your key to sign commits.

generate gpg with GitHub example

Using your GPG key to sign commits will allow other users to verify that the commit was actually made by you, and not someone pretending to be you.

imposter King on throne

Need help installing GPG? Check out this section of our support docs for a step-by-step guide.

Verifying Commits in GitKraken

After you’ve taken the steps to install GPG, select your key, and configure GitKraken to use your key to sign commits; all commits made by you will include a green badge in the commit message noting that commit as Verified. You can view this badge in the right Commit Panel inside of GitKraken.

gpg commit signing in GitKraken

Similarly, you can verify the legitimacy of other users working on your project by checking for their green badge. The icon will only appear green if both of the following conditions have been met: 

  • You have the other user’s public GPG key.
  • The user’s GPG key is trusted.

If a commit is signed without a GPG key, no icon will appear. The icon will appear grey if GPG is unable to verify or locate the signing key, or if the signing key has expired or been revoked. This will help you weed out any traitors.

Littlefinger being creepy

Faster Fetching Speed

Fetching on a repository with multiple remotes is now much faster. It will feel like flying on a dragon.

Increased Options on the Welcome Screen

Braavos! We have added the option to clone a repository to the GitKraken welcome screen. Now go and get your faces on!

arya faces

Fetch Memory Leak Fixed

Our team has resolved a memory leak that would occur with the Fetch operation. Varys and his whisperers will have to find their secrets elsewhere.

Varys Meme

Azure DevOps Fetching

GitKraken will no longer throw a Fetching pull requests failed error message when fetching from an Azure DevOps repository without using the integration.

We know where lies can lead…

mother of dragons

GitKraken Git GUI vs the CLI

$
0
0

If you’re a software developer, there’s a good chance you’ve got an opinion on using the command line for IT operations.

Many devs consider mastering the command line a feat of experience and skill. They are extremely proud, and protective, of their git CLI fluency.

For some devs, it’s downright romantic; the CLI offers an intimate experience with your computer. It’s like having a back-and-forth conversation with your machine.

man talking to AI machine

We’re not even going to address that now… That’s a whole other blog post.

But like Dan, a seasoned and industry-respected software developer explains, we very much believe in the immense benefits offered by GUIs that just aren’t possible in the CLI:

“I certainly know Git very well, and honestly think I’m far faster and more efficient in a Git GUI than I could possibly be in the command line – and I’m certainly not slow in the CLI.”
Dan Clarke, maintainer of The Devil’s Advocate Blog and co-organizer of .Net Oxford group

CLI vs GUI

As we’ve already established, devs who love the CLI LOVE the CLI. And many initially find GUIs, like GitKraken, an offense to their years of grinding code the hard way.  Emphasis on the HARD WAY.

GUI-shaming is real. Check out this Twitter post from Ben Halpern, an influential programmer and Founder of Dev.to.

GUI tweet from Ben Halpern

Ben was so intrigued by the responses he received that he wrote this follow-up article, “On GUI-shaming and a mountain of hot takes,” to highlight some of the comments.

“GUIs are not ‘for people who don’t want to invest the time and effort in trying to find out how something really works.’ They are a tool like any other.”
Ben Halpern, Founder of Dev.To

And we’re here to tell you “command line junkies” that it’s time to modernize your tool belts.

GUIs Have Won

Axosoft Founder, Hamid Shojaee, recently spoke at DeveloperWeek in Oakland on this very topic.

Imagine, for example, a smartphone, and how the experience would change if you had to type commands line by line instead of selecting icons. Instead of one touch, the process would be extended exponentially.

$ Run Instagram

Loading Instagram...

Life is too short to still be using the command line. GUIs have won and are the way of the future!

Improve Your Life with GitKraken

A common mantra for devs is “work smarter, not harder.” There’s no reason GUIs should be the exception to this rule.

Let’s dive into how the GitKraken Git Client can increase your productivity and improve collaboration and communication with your team.

GitKraken Graph Diagram

Life’s too short! Reject the CLI and Release the Kraken!

Download GitKraken Free

Viewing Commit History

In Hamid’s video, he compares the experience of viewing the history of your commits in the command line vs the beautiful rainbow graph in GitKraken.

In the CLI, the process entails typing:

git log --all --decorate --oneline --graph

And then you get this…

CLI Terminal ASCII Graph

Whomp, whomp. “ASCII art” on the left showing branches and merges and jibberish lines containing the SHA (Secure Hash Algorithm), which is supposed to provide you helpful context regarding which file changes have been made…

Looking at symbols confused

In GitKraken, you can clearly see when every commit was made and by whom; all your branches and where they were merged; and you can click any commit to quickly open the file and see the diff! More on that to come…

GitKraken Commit Graph

Commit Context 

Unlike the command line, GitKraken offers users the ability to add substantial context to each commit, which is easily available for others working on your project to see.

Commit information can be found in the Commit Panel, which lives on the right of the graph, and is a fan favorite feature. Try saying that five times fast…

You can see both unstaged and staged files here. Simply select a file to view the changes line by line in Diff View, showing you exactly what changes were made to your code. GitKraken highlights the altered code, allowing you to find the context you need in seconds.

GitKraken Diff View

Merge Conflict Editor

One of GitKraken’s most significant features is the Merge Conflict Editor, and frankly, could easily make the GUI > CLI argument on its own. There’s simply nothing comparable when using the command line.

When you run into a merge conflict in GitKraken, simply click the conflicted file to open the editor.

You’ll see three different sections: the two side-by-side sections on the top half show you the different versions of the file you’re trying to merge. The third section on the bottom half shows the output, allowing you to quickly identify where the issue is occurring, making it a breeze to select what you want to keep or discard.

GitKraken Merge Conflict Editor

The Merge Conflict Editor in GitKraken allows you to see the conflicting versions of code side-by-side AND even allows you to edit the output in the text editor if you’re using the Pro version. The best part? You’ve accomplished all of this inside one tool, saving time and preventing context loss.

This entire process would have been not only longer using the command line, but also more grueling and stressful. Resolving a merge conflict without a tool like GitKraken takes your focus away from an otherwise smooth workflow, risking loss of context, time, and mental energy.

Rebasing with Less Risk

When it comes to rebasing, GitKraken can lend a helping hand, especially when things don’t go as planned.

Making a Technical Mistake

Identifying what went wrong can be extremely difficult in the command line, but GitKraken offers intuitive resources to help you determine where the issue is stemming from and how to fix it.

Similar to the error notification you receive when a merge conflict occurs, GitKraken also lets you know when a rebase has failed and allows you to quickly see why and how to resolve it. Beautifully illustrated in this Learning Git with GitKraken video: Rebasing in GitKraken vs CLI Part 2, the experience is much shorter and smoother when using a GUI.

As shown in the video, if you run into a conflict when rebasing in the CLI, you must leave your central workspace to open your text editor, find the conflict, edit the text to resolve the issue, save your changes, and then go back to the command line to stage the changes, run the changes, and then continue your rebase. Now here’s to hoping you don’t get another conflict message, forcing you to repeat the entire process again.

Collaboration is Effortless

Collaboration can be notoriously difficult in the CLI; as we already covered, it’s very hard to tell who did what to which file. This can affect accountability and cause costly and continuous delays spent dissecting lines of code.

GitKraken is legendary for the central Commit Graph, which allows you to see who is working on which files in your project.

GitKraken Gravatars and Branch Colors

Your team members are easily distinguishable by their Gravatar images; each collaborator and all of their commits are displayed on the graph in a unique color, making for a beautiful, and useful, technicolor roadmap of your project for all to see.

GitKraken was Built for UX

As the name implies, a graphical USER interface is focused on you, the user (well, maybe not all GUIs – but you get the idea). GitKraken is designed with a heavy emphasis on the user experience – meticulously ensuring that every Git operation is designed to make developers more productive.

How many hours did you spend coding last week? Might as well enjoy them, right?

“Even the most die-hard CLI user will be more productive with a web UI in certain situations due to fundamental strengths of GUIs that ultimately are tied to traits inherent in humans.”
Micah Linnemeier, UX designer at IBM

The bread and butter of a GUI is visual manipulation of screen space and the ability to utilize a mouse or clicking.  Two things that come much more naturally, and much faster to humans than typing: sight and touch.

drag-and-drop functionality

We’ve already mentioned the next-level multi-color central graph, but GitKraken also has two side panels that add even more value to the user’s visual experience and allow for continuous context.

The Commit Panel is your hub for staging and committing changes.

The Left Panel shows branches, remotes, pull requests, stashes, tags, and submodules. You can easily filter files and other information by typing into the field at the top of the panel.

Your Mouse is Your Friend

Many of our users comment that they didn’t realize how much they missed using their mouse in the CLI until they experienced the functionality offered by hovering and clicking in GitKraken.

Furthermore, GitKraken does an incredible job of providing helpful, intuitive prompts for actions you can take at certain times during your workflow. Below are a few examples of some of our most popular functions.

  • Drag-and-Drop

Drag-and-drop one branch to another to generate a list of possible user actions like merging, rebasing, or a pull request from an integrated repo.

  • Toolbar

The toolbar at the top of the GitKraken Git Client provides quick and easy access to several major commands including pushing and pulling. All you have to do is move and click your mouse!

GitKraken Toolbar Icons

We would be remiss if we didn’t mention the magical UNDO button here, which can be a lifesaver when you perform a merge incorrectly.

You can also access the shiny GLO button from your toolbar which allows users to swap over to our Glo Boards for task and issue tracking, without having to open another software program.  

  • Right-Click

When you right-click on any commit, a drop-down menu of options will appear allowing you to create a branch, cherry pick, reset, or revert the commit. When you right-click on the top commit of a branch, you are given a drop-down menu with even more options.

Users can also right-click to view context on specific files or commits and access more features. Furthermore, you can right-click anywhere from the right Commit Panel to create new files.

  • Hover Tooltips

GitKraken provides the ability to hover over many items in your dashboard to reveal extended information. Users can also hover over labels to see a list of all refs.

Any keyboard aficionados out there? Don’t worry, we didn’t forget about you! Our Fuzzy Finder was created specifically with you in mind and provides access to our extensive inventory of shortcuts when you click Ctrl + P for Windows and Linux, or Cmd + P on Mac.

GitKraken Fuzzy Finder Cheatsheet

Speaking of shortcuts, users can see a full list of all supported keyboard shortcuts by clicking Ctrl + / for Windows and Linux, or Cmd +  / for Mac.

Life’s Too Short for the CLI

“I sometimes encounter people who feel it’s “better” to use command line Git, but for very ill-defined reasons. These people may feel like they should work in the shell, even if it leads to Git-avoidance, frequent mistakes, or limiting themselves to a small set of ~3 Git commands. This is counterproductive.”
Jenny Bryan, Software Engineer at RStudio & Adjunct Professor at the University of British Columbia

Listen to Jenny… It’s time to make the switch to the GitKraken Git GUI. Join more than one million users who have improved their workflow experience and increased productivity and team collaboration.

Top Influencers in Software Development

$
0
0

Between Medium, YouTube, Twitter, and the countless number of blogs across the web, the Internet can seem like a black hole of resources. And with so many experts and platforms to choose from, finding a voice that resonates with you personally can be overwhelming.

The GitKraken team has curated a list of our top seven favorite influencers in software development and hope some also resonate with you.

Dan Abramov

Dan Abromov

Website: https://overreacted.io/  

Twitter: @dan_abramov

Followers: 175,000

Dan Abramov is a React.JS developer based in London. One of the things we love about Dan’s blog is the variety of articles, both in substance and length. Dan is also one of the most consistent influencers you’ll find, posting almost weekly.

He’s a current developer who is constantly trying to improve his workflow and regularly tackles issues affecting devs around the world, including our team.

For example, he wrote a great article on React Hooks, specifically discussing setInterval. His tips are practical and actionable; something developers can easily implement into their own workflows.

Jenny Bryan

Jenny Bryan

Website: https://jennybryan.org/

Twitter: @JennyBryan

Followers: 24,400

Jenny is a statistician and software engineer at RStudio, an organization that develops open-source packages for data scientists, and she also serves as an adjunct professor at the University of British Columbia in Vancouver.

We think Jenny is a rockstar for many reasons, and not just because she included GitKraken in her “Recommended Git Clients” chapter in this amazingly comprehensive educational document, Happy Git and GitHub for the useR.

watch me diff watch me rebase

She’s an extremely entertaining writer and a GUI advocate. As you may have caught on from the meme on the front page of the aforementioned Git document (and shown above), Jenny has a refreshing sense of humor, something that helps break up the dense information of Git and version control.

Scott Hanselman

Scott Hanselman

Website: https://www.hanselman.com/

Twitter: @shanselman

Followers: 218,000

Scott is an industry veteran—he has been steadily contributing to his blog since 2002—and does a great job of providing topical content for the modern techie. Currently a Partner Program Manager at Microsoft, he frequently covers .NET, Windows, and Azure-related topics.

In addition to his blog, Scott hosts a few podcasts related to software development: HanselMinutes, The Developer’s Life, and Azure Friday.

We don’t just love Scott because he uses and actively refers others to GitKraken (which we SO appreciate, Scott…if you’re reading), we also love how philanthropic he is. Scott supports multiple organizations, with an emphasis on diabetes and D&I.

At GitKraken, we’re huge on diversity in tech initiatives, like #ItWasNeverADress, and love seeing Scott’s support for inclusion and equality.

Scott Hanselman Tweets

Back in 2016, GitKraken partnered with Scott and NightScout Foundation to donate the first month of GitKraken revenues to the foundation, supporting an open-source application, NightScout, which visualizes blood sugar in real-time for diabetics. Scott himself is diabetic and very open about the challenges of living with this condition.

Suz HintonSuz Hinton

Website: https://noopkat.com/

Twitter: @noopkat

Followers: 38,300

Though Suz has seemingly taken a bit of a break from her blog, Meow Machine, she has recently started live-streaming her open-source projects on her Twitch channel and is gaining a lot of traction. Arguably, her most comprehensive resource is her documentation on her GitHub page.

A native of Melbourne, Suz is a well-known industry influencer, speaking at many events around the globe, like Microsoft Ignite in Washington, D.C.

Ben HalpernBen Halpern

Website: https://dev.to

Twitter: @bendhalpern

Followers: 24,100

Ben is a Canadian software developer based in Brooklyn, and the Founder and Webmaster of Dev.to. He mostly works in Ruby and JavaScript, but frequently writes about diverse development tools, with a focus on open-source. 

Another GUI advocate, Ben is extremely active on Twitter. In addition to his personal channel, he also helps run @ThePracticalDev Dev Community boasting 156,000 followers.

We love how inclusive Ben makes development feel. He’s very helpful and collaborative and genuinely wants to see other devs succeed. He is also very active on his Dev.to profile page.

Chiu-Ki ChanChiu-Ki Chan

Website: http://www.sqisland.com/

Twitter: @chiuki

Followers: 17,700

Formerly a Google software engineer, Chiu-Ki Chan now runs her own mobile development company and specializes in Android development. Chiu is a frequent speaker at tech events across the globe and an active social influencer.

Chiu is one of the organizers of 360|AnDev, an annual conference for Android developers in Denver, CO and is the co-creator of the YouTube channel, Android Dialogs. Chiu launched the video series with fellow female engineer, Huyen Tue Dao.

While Chiu does still contribute to her blog, and has some great posts related to work/life balance—like this one on modular meal planning—she most consistently contributes content to her Android Dialogs platform.

Sarah DrasnerSarah Drasner

Website: https://sarahdrasnerdesign.com/

Twitter: @sarah_edo

Followers: 115,000

Sarah is on the core team of Vue.js and a contributing writer to the CSS-Tricks blog. Focusing on web development and design, Sarah brings an intimate view into the inner workings of the React and Vue frameworks.

Posting almost monthly, Sarah’s writing provides a good balance of technical and high-level topics. Like this article discussing the importance of one-on-one meetings between engineering managers and their employees; compared with this article on creating serverless APIs.

What Influencers Do You Tune Into?

Which industry experts are you addicted to following? Where do you find current tips and tricks for upping your development skills? We want to know! Drop us a note @GitKraken on Twitter!

If you’re ever in need of Git-specific tutorials, GitKraken has an incredible video series on our YouTube channel for Learning Git with GitKraken, with content for beginners through advanced users.

Learning Git: What is a Merge Conflict?

$
0
0

When working in Git, users can combine commits from two different branches through an action known as merging. Files are automatically merged unless there are conflicting sets of changes (i.e. the commits update the same line of code differently).

Merge conflicts can traditionally cause developers a lot of grief, especially when working in the terminal, but GitKraken’s merge conflict tool helps users identify where the conflict is occurring and how to resolve it.

Watch this quick video or keep reading to learn more!

Download our Git GUI client for free, to easily resolve merge conflicts.

Download GitKraken Free

What is a Git Merge Conflict?

A merge conflict is an event that occurs when Git is unable to automatically resolve differences in code between two commits.

I love merge conflicts meme

When all the changes in the code occur on different lines or in different files, Git will successfully merge commits without your help.

However, when there are conflicting changes on the same lines, a “merge conflict” occurs because Git doesn’t know which code to keep and which to discard.

When Can Merge Conflicts Occur?

Merge conflicts can happen when merging a branch, rebasing a branch, or cherry picking a commit.

where can merge conflicts occur

If Git detects a conflict, it will highlight the conflicted area and ask which code you wish to keep.

Once you tell Git which code you want, you can save the file and proceed with the merge, rebase, or cherry pick.

Resolve Merge Conflicts with GitKraken

While merge conflicts can be intimidating, they’re a snap with GitKraken.

Let’s say we have two branches that have modified the same line in the same file. When you drag-and-drop to perform a merge, GitKraken will detect the merge conflict and notify you that it needs your help.

GitKraken merge conflict editor

Click View Conflicts to view a list of conflicted files. Then, when you click a file, it will open the merge tool, showing you the conflicting changes between the two branches along with an output view at the bottom. You may check the box for each hunk of code you wish to keep or select the code one line at a time.

You can even type in the output box to fine-tune your code further. Once you’re satisfied with the changes, hit Save to exit the merge tool and proceed to the next conflicted file. After resolving all conflicted files, you may proceed with the merge.

Pro Tip: having the ability to edit code directly in the output box is a feature exclusive to GitKraken Pro.

Upgrade to GitKraken Pro.

Merge Conflicts with Deleted Files

As a second example, let’s say you attempt a merge where a file is deleted on one branch but not the other.

This will also trigger a merge conflict, but when you click to view the conflict, GitKraken will instead ask you to choose between three options:

  • Keep Modified Version will tell GitKraken to add back the deleted file along with any changes you made to that file.
  • Delete the File will tell GitKraken to delete the file and discard any of its changes.
  • And Keep Base Version will tell the app to add back the deleted file without any added changes from a branch.
merge conflicts with deleted file

After making your selection, you may commit and merge to proceed.

Easy Merge Conflict Resolution!

See, merge conflicts aren’t too bad, right!? Now you have the tools and expertise needed to resolve merge conflicts with the help of the GitKraken Git Client.

If you like this video, we encourage you to subscribe to our YouTube channel, watch our other Learning Git with GitKraken videos, and check back for more Git tips and training.

Viewing all 373 articles
Browse latest View live