Check diff against file on the server
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 and the version in my working copy by using svn
command line arguments.
Is there a way for me to do this?
Solution 1:
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.
Solution 2:
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 usingsvn revert
-
working copy: local modifications to
<file>
which has been checked out / updated as recently asBASE
-
HEAD
: latest modifications in repository. Equivalent toBASE
iff no changes have been committed since<file>
was checked out / updated as working copy.