0% found this document useful (0 votes)
42 views

Using Subversion: Distilled For Visual Studio Developers

The document discusses key concepts for using Subversion, including working copies, committing and updating changes, dealing with mixed revisions, reviewing changes, creating and resolving conflicts, reverting changes, tagging repositories to mark stable versions, and branching repositories for temporary workspaces or maintaining multiple released versions.

Uploaded by

Paul_Dupuy_Jr
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

Using Subversion: Distilled For Visual Studio Developers

The document discusses key concepts for using Subversion, including working copies, committing and updating changes, dealing with mixed revisions, reviewing changes, creating and resolving conflicts, reverting changes, tagging repositories to mark stable versions, and branching repositories for temporary workspaces or maintaining multiple released versions.

Uploaded by

Paul_Dupuy_Jr
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Using Subversion

Distilled for Visual Studio Developers


Contents
• Working Copy
• States: Commit and Update
• Mixed Revisions
• Reviewing Changes
• Creating Conflict
• Resolving Conflict
• Reverting
• Tagging
• Branching
Working Copy
• Local copy of the Repository
• Administrative directory (.svn)
– Contains a “Base” copy of items: the revision at the time of
last update
– Working revision # for each file
– Timestamp of last update
– Don’t touch the contents
• Use “SVN copy” and “SVN move”
– TortoiseSVN: right-drag-and-drop context menu
• If wonky, delete entire directory and update
States: Commit and Update
• Unchanged, and current
– Commit: nothing
– Update: nothing
• Locally changed, and current
– Commit: publish
– Update: nothing
• Unchanged, and out of date
– Commit: nothing
– Update: replace with latest
• Locally changed, and out of date
– Commit: fail with “out of date” error
– Update: merge with latest; potential conflict
Mixed Revisions
• Mixed revisions in a working copy are normal
• Commit
– Committed files have new revision #
– Doesn’t pull down latest changes
• Update
– Working copy is updated to latest revision (Head)
– Effective down the directory tree where the
command was initiated
Reviewing Changes
• TortoiseSVN:
– Check for modifications
– Show log
– Diff
• AnkhSVN:
– Pane: View > Other Windows > Pending Changes
• “Team Foundation Server is not your current Source Control
plug-in.”
– View History
– Show Changes
Creating Conflict
• Update changes clash with local modifications
• Files related to unresolved conflict:
– foo [Working copy with markers]
– foo.mine [Working copy without markers]
– foo.r314 [Base revision (before your changes)]
– foo.r478 [Head revision]
• Conflict markers
– Local changes
• <<<<<<< .mine
• =======
– Update’s version
• >>>>>>> .r478
Resolving Conflict
• TortoiseSVN:
– Edit conflicts
– Resolve using theirs
– Resolve using mine
– Revert
• Manual:
– Change foo
• Remove markers and make it right
• Replace foo with one of the revision files (.mine, etc.)
– Delete revision files
– Commit changed file
Reverting
• TortoiseSVN:
– Revert...
• Reverts to Base -- last update revision
– Revert to specific revision:
• Show log
• Right-click revision row > Revert to this revision
• Keeps changes by reverse-merging old revision into
working copy
Tagging
• Tagging and branching is just “SVN Copy”
• Subversion’s copy is “cheap” – only a pointer is
created, not a real copy
• Tag to mark a Named Stable Base
– TortoiseSVN: Repo-browser
– Right-drag-and-drop “/trunk” > Copy and rename
item to here
– Naming convention: “/tags/Sprint_x”
Branching
• Use branching to:
– Create a temporary Development workspace
– Maintain multiple released versions to support patches, etc.
• Before work begins:
– Repo-browser: copy “/trunk” to “/branches/Dev_x” (Version_x)
• If extensive working copy changes make merge very difficult, check in an
exported copy
– Last resort: loses file history
– Create and check out “/branches/Dev_x” directory
• Repo-browser > Create folder… ; check it out or
• Create the directory in working copy’s “/branches” and check in
– Right-drag-and-drop containing directory into Dev_x > “SVN export all items here”
– Commit (adding all files)

You might also like