I have a working copy of a repository on my machine, and I know that it has been updated on the server. I would like to know how to get the difference between the new version an
The difference between working copy and HEAD
; the changes which would need to be made to what is now in the repository (HEAD
), to produce your working copy:
svn diff -r HEAD --old=<file>
Of possible interest, the difference between BASE
and HEAD
; changes that have been checked into the repository since you last updated working copy:
svn diff -r BASE:HEAD <file>
And of course the difference between BASE
and working copy; the changes you have made since you last updated working copy:
svn diff <file>
There are three versions being discussed: BASE
, working copy, and HEAD
.
BASE
: <file>
as last checked out / updated. What working copy would revert to after using svn revert
<file>
which has been checked out / updated as recently as BASE
HEAD
: latest modifications in repository. Equivalent to BASE
iff no changes have been committed since <file>
was checked out / updated as working copy.The working copy is revision BASE. The latest copy from the repository is revision HEAD. This will compare your working copy against the HEAD revision:
svn diff -r HEAD <file>
Actually that'll spit the changes out in reverse, i.e. it tells you how to go from HEAD to BASE. So technically you want:
svn diff -r BASE:HEAD <file>
Can you spare the keyboard strokes? Only you and your deity know that answer.