Phabricator – code review, browser, bug tracker, and wiki

Phabricator – code review, browser, bug tracker, and wiki

Phabricator is an open source collection of web applications which makes it easier to scale software companies.

For those people who can’t afford GitHub, this should be a pretty good alternative.  Developed at Facebook.  All you’ll need to do is setup your git repositories.

P.S.: The best product descriptions ever (for parts of the Phabricator).

SmartGit — The Easy-to-Use Git+Hg+SVN Client

SmartGit — The Easy-to-Use Git+Hg+SVN Client

Personally, I prefer command line tools that allow me the greatest flexibility and control.  However there are many people who feel more comfortable in graphical environments.  For them, SmartGit looks like a good option.

SmartGit is an easy-to-use graphical user interface for Git, Mercurial and Subversion with optimized work-flows. SmartGit supports all Git and Mercurial features needed for every-day work in software development projects:

  • Local working tree operations
  • Status, diff, log
  • Push, pull, fetch (for all protocols)
  • Tag and branch management
  • Merge, cherry-pick, rebase, revert
  • Submodule support
  • Stash management
  • Remotes management
  • Advanced SVN support (use SmartGit as SVN client)

Integrating RT3 with Subversion

As I have mentioned a few times before, I am a big fan of using BestPractical RT3 for all sorts of things, including, but not limited to, bug tracking during project development.  I see a great benefit in having a single system for both technical support and development departments.  Bugs can be reported by customers, investigated by technical support department, passed on to developers, fixed and tested, and then passed back to technical support department to verify with the customer and resolve.

Needless to say, integrating RT3 with Subversion can be of great benefit.  In this case, not only you will have full history of bug reports, but you’ll also see which code changes were made for each bug report.  Learning from previous bug fixes and having a quick way to see why something was changed is priceless.

Read more to see how RT3 can be integrated with Subversion.  You can also easily adopt the same approach to other version control systems.

Continue reading Integrating RT3 with Subversion

Subversion has changelists

Several times a week I recommend to different people to actually go and read The Subversion Book.  Obviously, not enough people do it.  Including myself.  So sometimes I have to fish out a tasty bit from that book to get people interested.  Today is just such a day.

Have you heard about Subversion changelists?  If you haven’t, chances are you aren’t utilizing your time properly.  Here is a brief introduction.

Subversion 1.5 brings a new changelists feature that adds yet another method to the mix. Changelists are basically arbitrary labels (currently at most one per file) applied to working copy files for the express purpose of associating multiple files together. Users of many of Google’s software offerings are familiar with this concept already. For example, Gmail doesn’t provide the traditional folders-based email organization mechanism. In Gmail, you apply arbitrary labels to emails, and multiple emails can be said to be part of the same group if they happen to share a particular label. Viewing only a group of similarly labeled emails then becomes a simple user interface trick. Many other Web 2.0 sites have similar mechanisms—consider the “tags” used by sites such as YouTube and Flickr, “categories” applied to blog posts, and so on. Folks understand today that organization of data is critical, but that how that data is organized needs to be a flexible concept. The old files-and-folders paradigm is too rigid for some applications.

As wonderful as they are, changelists do have some limitations.

Subversion’s changelist feature is a handy tool for grouping working copy files, but it does have a few limitations. Changelists are artifacts of a particular working copy, which means that changelist assignments cannot be propagated to the repository or otherwise shared with other users. Changelists can be assigned only to files—Subversion doesn’t currently support the use of changelists with directories. Finally, you can have at most one changelist assignment on a given working copy file. Here is where the blog post category and photo service tag analogies break down—if you find yourself needing to assign a file to multiple changelists, you’re out of luck.

But even with this limitations, changelists are extremely handy.  So I urge you once again to read the book.   Or just the changelists section.

Subversion is not dead

Git is on the rise right now, especially in the Open Source Software development circles.  Some even went as far as predict the death of Subversion.  As much as I appreciate git (here is a link for you, if you don’t) and what it is doing for the Open Source Software, I have to agree with Brandon Savage:

Corporate America needs a centralized version control system. Subversion still offers this: Subversion centralizes the repository and simply checks out a working copy (versus Git, which gives you a complete repository). Corporate America still needs to have cannonical version numbers, and the ability to see the progress of a product over time as a single line – not a bunch of branches and independent repositories.

And this is true not only for the corporate America.