We import only source & lib usually, we don't include bin folder.
Based on your SVN client, you need to practice the following basic actions on the 'trunk' folder:
Add / commit.
Update / commit.
Modify / Revert.
Modify several files / commit all with same message.
View revision graph / view log.
Compare between versions / Show differences.
Add folder recursively.
Update local copy to specific revision not just head.
Delete / commit – Delete / revert deletion.
You need to get used for the icons on files for your favorite SVN client, you should find list in the help of the client software.
Basic actions (cont.)
Continue to practice the following tasks:
Lock – Modify – Unlock to prevent anyone from changing in file while you are modifying it.
Export to be used when releasing for taking version.
Try the blame feature to view changes for each line is done by whom.
Needed when your development team needs to work on two distinct copies of a project at the same time & keep the two lines of development distinct, example:
Development of release 2.0
Maintenance of release 1.0
Atomic transactions (Changeset).
Resolving conflict (Best get latest version & apply changes again).
Reverse Integrate (Merge branch in trunk).
Forward Integrate (Merge trunk in branch).
Advanced actions (cont.)
Tag / Release: Light weight, usually used as naming a release for a folder and its sub-folders to identify meaningful release (example: Build.1.2.03.prod).
Take it slow.
Be precise and exhaustive in your commit comments, try to have a standard for your company.
Commit your work to the repository as often as you can without breaking the build. Always check-in a compiled version of code in order not to prevent others from continuing work if updated their working folders. Don't let your working folder become too valuable.
Keep in touch with the repository i.e. update your working folder as often as you can without interrupting your own work. It isn't wise to let the distance between your working folder and the repository grow too large.
If you used merge, merge manually & make sure you have a compiling version before commit.
Best practice (cont.)
Small project: Don't branch or merge.
Don't create a branch unless you are willing to take care of it.
Big projects: Usually have experienced maintainers who keep track of branches or patches.
Make always your repository root having 3 sub-folders (trunk, branches, tags).
Don't make branches to keep track of specific customers, better to build customizability in your application.
Always group your check-in logically (Bug fix, add feature, particular task).
VisualSVN Server setup
Run installer “VisualSVN-Server-x.x.x.msi”.
Next, I accept, Next.
Specify location for installer (Require nearly 7 MB).
Specify location for repository (Require large space for your files).
Select authentication type based (Either own subversion users, or windows users) you may need to consult your system admin before decide.
VisualSVN Server setup (cont)
What happened after installation:
Service created VisualSVN Server created Automatic startup.
Repository folder contains 5 files now.
Repository (Server) information
Repository = File system x time
Usually the repository store delta between files for each check-in (Either forward or reverse delta or sometime make some combination).
Backup: dump versus hotcopy.
When you dump, it checks out every single revision in the repository.
hotcopy is a file copy of your repository database.