I moved from Github For Windows and then Git Extensions to SmartGit and recommend it. Here's why-
Cross-Platform (made in Java)
Very easy to setup and use. If you have experience with any git clients before, you won't take a minute getting on business.
Simple Clean UI. The main interface only shows the changed files and the big Commit, ...
There is nothing like TortoiseGit for beginners.
It integrates with Windows Explorer (no new UI to learn)
Open source (GPL)
Setup/initialize new local repo:
Basic functions are in the top of context menu (Sync, Commit, Push and Pull):
I am using Atlassian SourceTree and like it a lot.
Here's the drill:
Free (not open-source thought AFAIK)
Feature rich - Almost all the features of Git is there (not of GitHub, though, e.g. I didn't find a way to rebase a GitHub fork. It's doable using ordinary Git commands - adding remote etc, but not out of the box)
Bottom line ...
Yes, you should use git*.
Now let me explain why. Given the current (rather nebulous) set of criteria in your question the answer seems fairly obvious. If you knew any more, you wouldn't even be asking this question. You have already brought yourself to the edge of the cliff, now you just need coaxing to make the jump.
* Or bazaar, mercurial or other DVCS ...
I very much like Git for Windows (msysGit).
It has three 'modes' - Bash (where you can do everything), Windows Context Menu, and GUI (where you can do a lot less but it is I would say very user friendly).
makes it relatively simple to setup and initialize: Very easy
one or more local repos: Initialization is very simple and you can have as many as you want ...
It depends on what you're used to.
I came to Git from a Perforce world and as such, found P4Merge the best. It is free and easy to setup with Git.
However, I soon found P4Merge limiting and quickly graduated to BeyondCompare, which is not free.
If you're new to merging, start simple and try P4Merge.
UPDATE: I have now stopped using Beyond Compare and use ...
You may consider using GitKraken. Some features:
Free for non-commercial use
Cross-platform (Windows, Mac, Linux)
Multiple profile support
One-click undo & redo
Built-in merge tool
Drag and drop to merge, rebase, reset, push and more
Resizable, easy-to-understand commit graph
View image diffs in app
Submodules and Gitflow support
ungit has a strong ease of use and understandability focus (as the name suggests)
npm install -g ungit
It is Node.js based and runs a server that users can view on the browser, so it is cross platform.
Not sure if it manages SSH for users, but it is definitely something that I can see them doing.
Gitlab fits your criteria rather nicely!
Gitlab is an open source project that you can self host (use the Gitlab Community Edition). It isn't an exact work-alike of Github, but it is surprisingly close. I've recently started to use it for a number of projects and been pleasantly surprised at almost every step1.
It offers a wrapper around bare git ...
I have never used any code review tool other than Gerrit and GitLab (see below), but here are some that I know about (all of these are for Git, because that is what I know, but some may work with other Revision Control Systems):
Phabricator has lots of features for Software Engineering, and code review is one of them. It also looks like it has a much nicer ...
I think for your project Git is fitted best. Especially on Linux, it is...
easy to install: apt-get install git / yum install git
easy to get started with (just change into your projects top directory and run git init creates your local repository (a single sub-directory named .git inside the main directory)) and easy to maintain
powerful, but nobody forces ...
If you can, try switching to Google Docs. It handles this situation very well.
It is designed around collaboration on documents; it colors the edits or marks them with strikethrough for deletions until the edit it approved.
You can see who has made any edits on the page because it shows a name tag in the right margin on the pending edits.
Google Docs ...
I would suggest either TortoiseSVN as an SVN Client it is:
easy to use, (integrates with file explorer),
Prerequisite for VsTortoise Visual Studio plugin.
But reading between the lines it sounds like you have no access to the internet some of the time and do not have a server. This being the case you would be better off looking to use ...
I've always used TortoiseHg for my mercurial GUI needs on Windows, which has very nice pre-commit / merge support. You can always right-click on the Working Directory in the changeset view and select Diff to Parent to open your selected diff tool with all the changes in your current repository before you commit. You can also select any changeset and Diff to ...
A very popular version control system these days is Git.
GitHub is free with unlimited collaborators for public repositories. If you need private repositories take a look at GitLab; it's free when you host it yourself. If you're looking for a basic Git server take a look at Gitolite.
The Git wiki offers an overview of graphical and web interfaces that are ...
I would consider evaluating the Atlassian stack, which is for me the most valuable out there:
JIRA + Fisheye + Confluence will be a perfect match. Fisheye can connect to either SVN or Git repositories
Disclaimer: I don't work for Atlassian. I use all these tools actively, daily, and develop plugins for JIRA since 4 years, ...
TRAC has wiki, bug tracker, code viewer, all with markup to interlink.
Or, there is its fork Apache Bloodhound.
All written in Python, plenty of plugins. Very mature.
BTW Trac wiki is much closer to original idea, plain text with markup. Easier to parse from outside to create plugins.
I used to do the trivial Git work with GitX. It has a minimal user interface and is just enough for adding, pulling, pushing and committing. Generating keys has to be done through the command line though.
There are other GitX-forks available. The original is mostly focused on simplicity.
I would advise in this case using https://draftin.com/, see here for a quick look at the specific functionalities you may wish to use.
One downside to this software I want to point out before giving a detailed answer to your question is that it's meant to be used online. It is possible to use draft without an Internet connection (see over here) but it still ...
KeePass 2 has a history for every entry (automatically updated).
It runs on Linux, however I think it was ported from Windows, and the Linux version looks a little ugly.
I think it does everything else you list except showing a diff between revisions.
vim and derivatives include infinite undo so you can get back to the version of the document you opened. Recent version of vim also allow persistent undo so you can keep your undos even if you exit the editor.
I switched to Tower after I got fed up with the free options. I know you're after OSS/free, but still think this is a useful contribution, even if just for others looking for Git apps (student/education discounts available too).
While it's tagline is "the most powerful git client for Mac" I also think it's one of the easiest to use. Sure, it handles ...
We use Araxis Merge (available for Windows and OS X) and I like to think that the basics of the application itself are very easy to use, so I think it would fit your requirement of "a newbie to merging will be able to use easily".
Of course, it also costs 200 € per user. (Well spent IMHO.)
I'm using Trac for this kind of job (see my answer here for details):
Version control integration (SVN preferred): Definitely. I'm using it with SVN, but other VCSs (e.g. git) are also supported.
Tickets support custom fields, including search and filter: Yes. And more, like master tickets/dependencies, tags, ...
Different types of tickets can go through ...
You can use a CVS like the ones you mention and set up some background auto-commit. E.g. with git on Linux
inotifywait -q -m -e CLOSE_WRITE --format="git commit -m 'autocommit on change' %w" file.txt | sh
commits file.txt as soon as it is saved. Alternatively, you can cron the commit.
Since each user has their own repository, there shouldn't be any ...
Version Control Systems generally do not care about what the files fed to them represent – though they tread file types differently (e.g. binary files). So we can leave the file-specific stuff aside.
From your description, it looks to me as if Subversion might be a good match:
Individual file checkin/checkout capability (for collaboration): Possible. ...
gitfs should fit your needs:
tracks changes: Yes, in a git repo
mostly small files: Perfect. Huge files might be problematic, though.
Non-root users should not be able to modify the history/versions of a file: Fits. Git is just used as backend, and mounted as file system. So only normal file system operations should be possible unless the user has direct ...