Intro to Subversion’s Working Copy

转载 2013年12月05日 15:10:48

Apache Subversion (also referred to as SVN) is an open source version control system. Although it’s widely used for managing source code files, it can actually be used to manage any type of file: images, videos and Word documents can all be managed with Subversion. At its core, Subversion allows teams to manage and coordinate the changes being made to a collection of files.

Subversion consists of two major elements. The first is the repository, which is a server where all your files are stored. The most recent revision of the repository is called the Head, although you can access previous versions from the repository. The second element, is the working copy, which we will explore in-depth in this post.

The Working Copy

‘Working copy’ is a term that’s thrown around a lot in Subversion tutorials and guidelines – but what exactly is the working copy, and how does it work? Essentially, a Subversion working copy is a directory tree on a local system that looks like any other ordinary directory full of files, but it provides a developer with their own private work area, complete with copies of the files contained within the repository. Subversion waits for instructions before making your working copy changes public, or incorporating other people’s changes into your workspace. When you’re ready to perform either of these actions, Subversion has the following commands:

  • svn commit – sends changes from your working copy to the repository. Log messages can be added with either the –file or –message switch.

  • svn update - updates your working copy with changes from the repository. The –revision switch can be used to provide a revision, or a range of revisions, to be updated to. If no revision is specified, this command brings your working copy into line with the HEAD (i.e the latest) revision.

The working copy contains all the files that have been checked out from the Subversion repository, but it also contains some additional files generated by Subversion to help maintain the working copy. One of these additional files, is a ‘.svn subdirectory’ which serves as the working copy’s administrative directory, and helps Subversion distinguish which of the versioned files contain unpublished changes, and which files are out of sync with the repository.

If you’ve been using previous versions of Subversion, you’ll notice that the .svn subdirectory underwent a major change in Subversion 1.7. In 1.7, the working copy metadata is stored in a single location, with just one .svn directory in the root of the working copy. Previously, Subversion maintained a .svn directory in every versioned directory of the working copy.

Things to Watch out For

The .svn folders are critical to Subversion’s smooth running. Typically, the best cause of action is to leave them alone, but there are several issues worth bearing in mind, to avoid disrupting these hidden folders:

  • Do not delete! – the .svn file contains the metadata that links the parent folder with the repository, so if you delete .svn, your working copy will be unable to communicate with the repository – Subversion will stop working completely!
  • No nesting – do not try to nest one working copy inside another working copy (regardless of whether the working copies have been checked out from the same repository, or different repositories.) Nesting will confuse the .svn folders, and it is likely they will be unable to communicate with any of the corresponding repositories.
  • Watch out for hidden .svn folders – make sure that when you are adding a folder to your working copy, it doesn’t contain a hidden .svn folder. If you try to copy a folder into a working copy that already contains a .svn folder, you will just get an error. If you really need to add the folder, you must first delete all the extra .svn folders.


org.apache.subversion.javahl.ClientException: Unsupported working copy format svn: This client is to

错误提示: org.apache.subversion.javahl.ClientException: Unsupported working copy format svn: This cl...

svn 无法提交,报错Solve ""svn : Working copy is too old (format 10, created by Subversion 1.6)


Xcode4 布置Git环境Your working copy is out of date. Try pulling from the remote to get the latest change

今天布置环境的时候发现一个问题:Your working copy is out of date. Try pulling from the remote to get the latest cha...

Windows下升级SVN后,Ubuntu下svn命令报错—svn: E155021: This client is too old to work with the working copy at

Windows下升级SVN后,在Ubuntu下执行svn命令报错,如下:      svn: E155021: This client is too old to work with the w...

svn: This client is too old to work with working copy

昨天在项目在svn上更新了下,之后不管怎么弄其他操作都不能正常进行了,总是提示"svn: This client is too old to work with working copy '.'; p...
  • zju2004
  • zju2004
  • 2011年03月16日 09:24
  • 3117

xcode提交版本时提示The working copy "MyPro" failed to commit files.解决方法

在使用Xcode提交代码,commit到github/coding这类管理网站的时候,有时会遇到这样的问题:像这样点击Commit 1File以后会弹出一个窗口,如下—如果遇到此类问题,进行如下操作即...
  • zwyJoey
  • zwyJoey
  • 2016年04月24日 21:54
  • 2102

SVN 报错:svn: E155021: This client is too old to work with the working copy at..... (format '31').

产生该错误的原因:电脑安装的SVN客户端版本如下图: eclipse的svn插件是: 因为运行的下面操作,所以产生此错误! 对本地Checkout的版本号运行Upgrade: ...

SVN版本问题:This client is too old to work with working copy

【问题描述】:MyEclipse插件版本1.4,客户端TortoiseSVN 1.6.6,用客户端commit代码之后,无法在MyEclipse下对工程就行update等操作,提示错误信息:This ...

SVN:This client is too old to work with working copy…解决办法

SVN:This client is too old to work with working copy…解决办法 Posted on 2010/04/06 这两天项目提交时候,虚拟机用S...

Can't use Subversion command line client: svn.Errors found while svn working copies detection.

使用Intellij的svn时提示出错:Can't use Subversion command line client: svn.                                 ...
  • Acmen99
  • Acmen99
  • 2016年07月19日 14:37
  • 723
您举报文章:Intro to Subversion’s Working Copy