Recursively compare content of two directories

Command line

This requires the diff and vim packages.

diff --recursive /dir/ect/ory1 /dir/ect/ory2 > 1_vs_2.diff
vimdiff 1_vs_2.diff

Potentially useful diff options:

--ignore-all-space
--exclude=.svn

GUI

Install Intellij CE.

Then either Run IntelliJ Diff from the command-line.

Or from within a running Intellij window:

  • Open a common parent directory as a project
  • Select the two directories to compare
  • Right-click – Compare Directories

Alternatives

I often see the GPL-licensed WinMerge tool recommended, But it works only on Windows, last release was 2013 and navigation into sub-directories and file diffs is a bit clunkier than in Intellij.

Java software engineering – reference resources

Official Java and JEE

Java Technology Reference

Java Standard Edition (JSE)

Java Enterprise Edition (JEE)

The official Java tutorials

The official JEE 7 tutorial

JEE 7 Technologies index

Java language spec and JVM spec

Java community

Oracle Java community

OpenJDK

Java Community Process (JCP)

Apache Commons

Apache.org Java projects

JBoss.org

Spring

Google Guava

Trending Java projects on github

JEE and Java web servers

Apache Tomcat

JBoss Wildfly

Glassfish

Build and test automation

Sonatype Maven books

Jenkins documentation (wiki)

JUnit reference documentation

Source and version control

The SVN reference book

Git reference documentation

Java IDEs

Intellij IDEA documentation

Eclipse documentation

Netbeans knowledge base

Vim configuration for Java coding

Subversion 1.8 released

The new Subversion 1.8 features look quite good for a centralized Version Control System (VCS).

But note that the Subversion 1.8 working copy format is backwards-incompatible. Some tools like recent TortoiseSVN versions will use the 1.8 format by default which will cause compatibility problems for IntelliJ and any other tools that do not yet support it.

So for now, it is probably better to stick with 1.7 and wait until all your tools fully support 1.8. For IntelliJ you might want to watch [IDEA-94942] for status updates.

Personally, I am more interested in Git anyway because it offers all the flexibility of a decentralized VCS. I am reading the free “Pro Git” ebook on my Kobo eReader (epub format).

Version Control for corporate development: Git

What is Git?
http://en.wikipedia.org/wiki/Git_(software)
http://git-scm.com/downloads
http://git-scm.com/download/win

Reference documentation
http://git-scm.com/docs

About Git, compared to alternatives
http://git-scm.com/about

A very useful post on stackoverflow:
Typical problems using Git in corporate environment with solutions

Linus Torvalds’ famous “rant” style presentation about Git vs Subversion:
https://www.youtube.com/watch?v=4XpnKHJAok8

Questions, discussions and answers on stackoverflow.com:
Distributed Version Control Systems and the Enterprise – a Good mix?
Can we finally move to Distributed VCS in Corporate Software?
Git-Based Source Control in the Enterprise
Reasons against using “Git” in the enterprise

Article: “Benefits of Git for business” (from 2008 but still valid):
http://pathfindersoftware.com/2008/08/selling-git-on-the-business-end/

Presentation: “Git for Companies” (Video and Slides, from 2012):
http://2012.con-fess.com/sessions/-/details/169/GIT-for-Companies

Pre-tested commits with git and Jenkins:
http://blog.cloudbees.com/2012/03/dont-phunk-with-my-stable-branch.html

IDE support
http://www.eclipse.org/egit/
http://netbeans.org/kb/docs/ide/git.html
http://www.jetbrains.com/idea/webhelp/using-git-integration.html

Commercial Git Hosting (for no-hassle repo infrastructure)
https://github.com/plans
https://bitbucket.org/plans