Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between checkout and export in SVN

What is the exact difference between SVN checkout and SVN export?

From what I know, export does not include the .svn directory which include metadata, and checkout included that .svn directory. Yet, my colleague had this problem recently that there is a different behaviour for the stuff compiled from sources that is checkout and exported from SVN repo. Both of them compiled correctly, but the one compiled from svn export works, but the one that is checked out doesn't work at all.

PS: The stuff being compiled is the Linux 2.4 kernel that is being used in an embedded device. The image compiles and load correctly, but the checked out one doesn't work. It causes a kernel panic during insmod. Why could this happen at all?

PPS: We've tried checksumming and diff tool to check the difference between the two directories that are exported and checked out from SVN. Both of them are the same except for the .svn directory.

like image 911
andycjw Avatar asked Jan 07 '09 07:01

andycjw


People also ask

What is checkout in svn?

svn checkout checks out (retrieves) a working copy of the repository into the specified folder. If you don't have access to the repository, and there's not already a current copy of the source in the folder, you can't possibly do a build. If there is a current copy of the source there, it should include build.

What is import and export in svn?

"Import" is to bring something completely outside of version control into SVN. Once something is under SVN control, you can "commit" (new modifications), or "checkout" (stuff you've already committed). At any time, you can "export" some or all of your project into a "clean directory".

What does TortoiseSVN export do?

SVN Export all to here: exports the dragged files/folders to the target location, including unversioned files.

How do I checkout a file in svn?

So we right-click on this folder and select 'SVN Checkout…' From here we'll specify the location of the repository that we want to check our files out from. So something like… If you've forgotten what this URL is then you can go back to the VisualSVN server app and right click to select 'Copy URL to Clipboard'.


2 Answers

svn export simply extracts all the files from a revision and does not allow revision control on it. It also does not litter each directory with .svn directories.

svn checkout allows you to use version control in the directory made, e.g. your standard commands such as svn update and svn commit.

like image 157
gak Avatar answered Sep 27 '22 20:09

gak


As you stated, a checkout includes the .svn directories. Thus it is a working copy and will have the proper information to make commits back (if you have permission). If you do an export you are just taking a copy of the current state of the repository and will not have any way to commit back any changes.

like image 35
notbenh Avatar answered Sep 27 '22 22:09

notbenh