SmartGit
Encyclopedia
SmartGit is a cross-platform Git
Git (software)
Git is a distributed revision control system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on...

 client. It is written in Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 and runs on Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 and Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

.

Features

SmartGit's main user interface is similar to those of typical file managers (such as Windows Explorer
Windows Explorer
This article is about the Windows file system browser. For the similarly named web browser, see Internet ExplorerWindows Explorer is a file manager application that is included with releases of the Microsoft Windows operating system from Windows 95 onwards. It provides a graphical user interface...

) in that it has a directory tree on the left and a file table on the right. However, by default the file table is fully recursive, i.e. it shows not only the files inside the directory that is currently selected in the directory tree, but also all files in sub-directories of the selected directory.

Another characteristic of the file table is that the files in it are (by default) sorted so that all 'changed' files are shown on top. In other words, if a file is modified locally so that its content differs from the latest version in the Git repository, SmartGit moves the file to the top of the file table. Effectively, this gives the user an overview of what he or she is about to commit.

SmartGit makes extensive use of file-manager concepts such as dialogs, wizards and drag & drop, through which all common versioning tasks (committing, branching, etc.) as well as higher-level operations not directly provided by Git can be performed.

SmartGit comes bundled with numerous features that are frequently needed in conjunction with version control. Thus, unlike command-line based tool chains, the program can be used 'out of the box' without requiring the user to install and set up additional tools. These bundled features include:
  • A file diff viewer that shows two text files side by side, highlights the differences between them and allows editing the files.
  • A so-called 'conflict solver', which is basically a three-files version of the file diff viewer. It is used for resolving merge conflicts.
  • A built-in SSH client.

SmartGit as SVN client

A unique feature of SmartGit is that it can be used as an SVN client, augmented with Git functionality:
  • When commits are created, they are first stored locally, rather than immediately sent ('pushed') to the SVN repository. The user can decide to push the locally stored commits whenever he or she wants. The main advantages of this local storage are increased performance due to the absence of network delays and the ability to work and commit offline.
  • Moreover, commits that haven't been pushed yet can be modified in many different ways: Multiple commits can be combined into one, one commit can be split into multiple commits, the order of commits can be changed, commits can be undone, etc. The point of such modifications is to allow 'cleaning up' the local history before it becomes part of the official history. A cleaned-up history is far easier to analyze later, for example when tracking down the source of a certain bug.

Licensing

SmartGit is free to use for non-commercial purposes. For commercial usage and technical support, a license must be purchased.

See also

  • Comparison of Subversion clients
    Comparison of Subversion clients
    A comparison of Subversion clients includes various aspects of computer software implementations of the client role using the client–server model of the Subversion revision control system.- Descriptions:...

  • Git (software)
    Git (software)
    Git is a distributed revision control system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on...

  • Subversion (software)
  • Version Control
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK