For those who deal with both project management and software development efforts, you know that it is very complicated to do everything via command line. Working in large teams where everyone is accountable for the process as much as their code, and needing the ability to scale at the same time is a difficult balance, but a tool called Tower can help.
About the application
Tower is a lightweight application with a beautiful and intuitive interface. It is a multi-platform application and has paid versions for Windows and Mac, but unfortunately, has no version for Linux yet.
So far, Tower has been a better alternative than GitHub Desktop for one major reason—Tower provides the possibility to connect with multiple services, unlike GitHub Desktop that allows you to connect with GitHub only. Not all development teams have been able to standardize their version control systems (VCS), but they have been able to standardize their processes. Tower works with several source repositories, including GitHub, Bitbucket, and even Visual Studio Team Services, among others.
Once you have connected to your VCS service(s) and configured your account, you have access to all your repos, and developers can work with the platform as they would any other. Even if your repos span multiple VCS services, you can see the code in one place. As files change, Tower automatically sees it, and notifies the developer that a commit should be done.
As they work, you can see the details of each commit made by the developer team. In Tower, you can track who is committing code with full activity history. All activity information is available on the screen to facilitate visualization of the commits, and all the work needed to get to a merge. In this screen, we see in detail who authored a commit, and the date and time that it was sent. It also indicates the branch that was submitted and the hash of the commit.
Beyond reporting, another advantage of the tool is to explore Git, using cherry-pick commits, git-flow, submodules, stashes, and resets—which can cause avoidance of the command line. I always prefer to use Git through the command line, but because of the complexity of understanding of some concepts, here I ended up limiting my use, and did not take advantage of the full span of Git resources. But with a tool that has a graphical interface, understanding more advanced concepts and putting them into practice becomes less of a process.
Functionality
The feature set and UI provide easy and fluid utilization, all available in one screen (see below). In the main menu bar, there are buttons that correspond with the Git commands used via the command line. These buttons make daily use of the application much easier. On the left side, we can see the history, the stashes, and the branches. In the middle of the screen, we can see a timeline created for each commit that was submitted. And on the right, we have the complete information on the commits.
Further down on the right side, we see in detail what was committed. Whether there was a modification, inclusion or exclusion is clearly specified. You can also view the file completely and identify where exactly each change was made.
Conclusion
Overall, the tool is complete and works well, easing the work routines of developers and the leaders of development teams. It increases focus by eliminating wasted time randomly searching for what has been altered inside the code. Changes made are marked in different colors, with a tag pointing to what has been modified, changed, and deleted. Currently, it is possible to test the tool for 30 days and thoroughly check all the tool’s functionality to see if it meets your needs.