1) What is SVN?
2) What is the difference between GIT and SVN repository?
The difference between SVN and GIT is
- Git does not support “commits” across multiple branches or tags. Subversion allows the creation of folders at any location in the repository layout
- Gits are unchangeable while subversion enables committers to treat a tag a branch and to create multiple revisions under a tag root
- Git is less preferred for handling large files or frequently changing binary files while SVN is capable of handling multiple projects stored in the same repository
3) List out what all things should be stored in the SVN repository?
In SVN repository you can store
- Source Code
- Build scripts
- Test data used by QA
- DB schema
- Project settings (When the whole team is using the same IDE)
- Project documentation (Internal and External)
- Minutes of meetings, significant e-mails, and info from the web
- Expensively generated artifacts
- And other documents related to the project
4) What is the command to add a file or dir?
To add a file or dir in SVN the command you will use
- svn add filename
- svn add dirname
5) List out the common subversion commands?
6) What is the difference between commit and update?
7) Explain how you can apply a patch in SVN?
8) What is the command to create a new directory under version control?
Command to create a new directory under version control includes
- svn mkdir directory
- svn mkdir http://url/directory
9) How you can import your existing directory into the new repository?
The command you will use to import your existing directory into the new repository you have to writesvn import/home/mysurface/programming file:///home/mysurface/repo/programing_repo-m “initial import”
10) What is the command to see what is inside the repository?
11) What is the command to view the difference between the local version and repository version?
The command used to view the difference between the local and repository version is
- svn diff filename
- svn diff dirname
12) Mention what does the result codes G and R in svn indicates?
The result codes G and R in svn indicates
- G code: Changes on the repo were automatically merged into the working copy
- R code: This code indicates that the item has been replaced in your working copy. This means the file was programmed or scheduled for deletion, and a new file with the same name was scheduled for addition in its place
13) Mention what is the function of Revert in subversion?
14) Explain how you can revert to a previous version?
To retrieve a previous version, you have to use “revert” command. But revert command will simply erase local edits, what you actually need is to “merge” command. For example, you have a file [abc.txt] and the current version is 101, and you want version 201. Then you will use the command like
- svn merge –r 101:201 abc.txt
- svn commit –m “Reverted to revision 201” abc.txt
15) Which commands can be used to move some subset of code and history of this code from one SVN repo to another?
Following commands can be used
- svnadmin dump
- svndumpfilter include
- svnadmin load
- svn remove
16) List out what is the best practices for SVN?
Best practices for SVN is
- Update and Test before commit
- Work from your own local workspace
- Commit small autonomous changes
- Validate the files you are committing, you actually changed
- Keep in touch with repository
- Watch for conflicts
- Always group your check-in logically
- Use comment
17) Explain what checkout command is and how to use the checkout command in SVN?
Check-Out command in SVN is used to create a local workable copy of your project retrieved from the local repository.For example, you have a project located in the repository created at URL location http://www.guru99.com/svn/myrepo/myproject. So you have to checkout myproject into your local system assuming myrepo is a public repository. You will use code
- svn co http://www.guru99.com/svn/myrepo/myproject .
This command will copy all your files to your current directory. If you want checkout the directory which is in a private repository, you will then use the following command
- svn co http://www.guru99.com/svn/privaterepo/myproject –username admin –password admin