Your SlideShare is downloading. ×
0
Using TortoiseSVN:A Quick Primer
TortoiseSVN    ⇨Graphical front end to a Subversion repository      — Subversion is a Version Control system    ⇨Integrate...
Infrequent Tasks    ⇨Creating a repository      — A one-time creation activity, not used often      — Should be created by...
Creating Subversion Repositories 4
Creating A Repository-1                          The Subversion repository                          must be created in an ...
Creating A Repository-2                                                 Press the                                         ...
Populating The Repository WithExisting Non-versioned Files 7
Importing Into A Repository-1                     Choose the directory that contains                     files to be place...
Importing Into A Repository-2                                                   Specify the URL path to the repository.   ...
Creating A Working Copy From TheSubversion Repository10
Creating A Working Copy-1                        Preferably choose an empty                        directory name within w...
Creating A Working Copy-2                                     Specify the URL path to the repository.                     ...
Creating A Working Copy-3                      Pressing |Choose items| displays                      this dialog.         ...
Creating A Working Copy-4                        Selected folders are copied from the                        repository to...
Creating A Working Copy-5                                       Never access the .svn folder.                             ...
Daily Usage Cycle 16
Operations For Daily Use     ⇨Update the working copy     ⇨Lock binary files in the working copy       — Text files can al...
Update The Working Copy-118
Update The Working Copy-219
Lock Files-120
Lock Files-2                                           State why you want to lock                                         ...
Lock Files-322
Edit Files                  Edit files using an appropriate                  application. For example,                  Fr...
Commit Files-124
Commit Files-2                                                       Specify a suitable log message.                      ...
Common Tasks     ⇨Extracting an older version ("Export")     ⇨Displaying the revision log     ⇨Releasing a lock     ⇨Undo ...
Extracting An Older Version27
Exporting An Older Revision-1                           Choose an empty directory.28
Exporting An Older Revision-2                        If unsure about the required revision                        number, ...
Exporting An Older Revision-3                        Choose the required revision based                        on the log ...
Exporting An Older Revision-4                          The chosen revision number is                          filled in.31
Exporting An Older Revision-5                      Unlike checked-out folders,                      exported folders do NO...
Displaying The Revision Log33
Displaying Revision Logs-1This folder must contain aworking copy from therepository.34
Displaying Revision Logs-2                         If required, filter log messages                         displayed by t...
Displaying Revision Logs-3                         Filter text applies to log text, author,                         or fil...
Undoing Changes(Reverting To The Last UpdatedVersion) 37
Undoing Changes-1                         To undo any changes made, use the                         Revert option. This wi...
Undoing Changes-2                                 List of files modified since the last                                 Up...
Undoing Changes-340
Releasing Locks41
Releasing Locks-1                     Choose the Release lock option                     for files that are locked but tha...
Releasing Locks-2                         The icon overlay changes to gray                         for unlocked files.43
Rolling Files Back To An OlderRevision44
Rolling A File Back To An Earlier       Revision -1     Right-click the file that you need     to roll back to a previous ...
Rolling A File Back To An Earlier     Revision -2                           1. Right-click the required version.          ...
Rolling A File Back To An Earlier     Revision -347
Rolling A File Back To An Earlier             Revision -4     If the file was rolled back erroneously, use the     Revert ...
Rolling A Directory Back To AnOlder Revision49
Rolling A Directory Back To An Earlier            Revision -1Right-click the directory youneed to roll back.              ...
Rolling A Directory Back To An Earlier     Revision -2                          1. Right-click the required version.      ...
Rolling A Directory Back To An Earlier            Revision -3     !WARNING!     ========     When reverting the complete w...
Checking For Modifications53
Checking For Modifications-1                        Check for modifications against the                        current ver...
Checking For Modifications-2                                            List of files in the working copy that differ from...
Viewing Version DifferencesBetween Text Files 56
Viewing Version Differences-157
Viewing Version Differences-258
Viewing Version DifferencesBetween Specific Revisions59
Viewing Version Differences Between Specific     Revisions-160
Viewing Version Differences Between Specific     Revisions-2                 To compare revision 245 and 190,             ...
Viewing Version Differences Between Specific     Revisions-3               Lists all files that differ across the selected...
Viewing Version Differences Between Specific     Revisions-463
Adding New Files To The Repository64
Adding New Files-1                New files or folders are not automatically added.                Explictly add new folde...
Adding New Files-2                Lists files and directories present in the working                copy which do not exis...
Adding Files Outside The WorkingCopy 67
Adding Files Outside The Working copy     ⇨To add files from outside your working copy you      can use the drag-and-drop ...
Renaming and Deleting FilesUnder Version Control69
Renaming Objects Under Version     Control                  Always rename objects under version control                  u...
Deleting Objects Under Version     Control                   Always delete objects under version control                  ...
Moving Objects Within The Repository     ⇨To move files inside a working copy, use the drag-      and-drop handler again: ...
Rename/Move/Delete Procedure     ⇨Best way to Rename/Move/Delete files/dirs       — Commit all changes       — Release all...
Adding Files/Directories To AnIgnore List (Method 1)74
Adding Files To An Ignore List                Files added to an Ignore list for the project                are ignored dur...
Adding Files/Directories To AnIgnore List (Method 2)76
Adding Files/Directories To An Ignore         List-1     ⇨Right-click the directory containing the      files/directories ...
Adding Files/Directories To An Ignore     List-2                    Choose the Subversion tab from the                    ...
Adding Files/Directories To An Ignore       List-3     Press the |New| button.79
Adding Files/Directories To An Ignore     List-4                      Choose the Advanced option80
Adding Files/Directories To An Ignore     List-5                         Enter the list of files and                      ...
Adding Files/Directories To An Ignore               List-6     List of properties that will be     set for the folder afte...
Including A Common Sub-project83
Including A Common Sub-project         -1     ⇨A folder checked into a Subversion repository      may need to be reference...
Including A Common Sub-project         -2     ⇨Example:      — A web-site project stored at the repository URL        http...
Setting svn:externals using TSVN-1                          Choose the Subversion tab                          from the fo...
Setting svn:externals using TSVN-2     Press the |New| button.87
Setting svn:externals using TSVN-3               Choose the Externals               option.88
Setting svn:externals using TSVN-4 Type in the folder name to create. In this example, a folder called graphics will be cr...
Setting svn:externals using TSVN-5                        The svn:externals property is now set.                         H...
Tagging/Branching     A Subversion Repository91
Tagging/Branching A Subversion            Repository⇨Subversion repository root usually contains:     — /trunk/     — /bra...
Tagging/Branching A Subversion            Repository⇨Subversion repository root usually contains:     — /trunk/     — /bra...
Branching A Subversion Repository     Using TSVN-1                         Choose the Branch/tag option                   ...
Branching A Subversion Repository     Using TSVN-2                                     Current repository URL.            ...
Branching A Subversion Repository     Using TSVN-3                       Revision number will be                       inc...
Conflict Handling97
Conflicts     ⇨Two types      — File conflict      — Tree conflict98
File Conflict-1     ⇨Alice modifies file from revision 32       — Text file relnotes-10.2.sth, lines 10-16       — Text fi...
File Conflict-2      ⇨Bob runs SVN Update to update the working copy       to r33        — Alices changes to relnotes-10.1...
File Conflict-3      ⇨To resolve the conflict:        — Compare relnotes-10.2.r33.sth and relnotes-10.2.mine.sth for      ...
Tree Conflicts-1      ⇨Tree conflict        — Different users work with the same set of files and directories,          cr...
Tree Conflicts-2      ⇨Tree conflict resolution        — Determine the cause          ⊗ Right-click the conflicted directo...
Best Practices-1      ⇨Commit should be at a directory level        — AVOID commits on files. Stop thinking in terms of fi...
Best Practices-2      ⇨Commit after finishing a task        — Adjust the commits to the content of your work, not to the w...
Best Practices-3      ⇨AVOID Committing open files      ⇨AVOID Updating a working copy containing opened       files      ...
Need More Detailed Info?      Read the TortoiseSVN manual -      http://tghyara-pc.idc.oracle.com/~tghyara/sw/dev/subversi...
Upcoming SlideShare
Loading in...5
×

Tsvn17

540

Published on

TortoiseSVN 1.7 slides

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
540
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
77
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Tsvn17"

  1. 1. Using TortoiseSVN:A Quick Primer
  2. 2. TortoiseSVN ⇨Graphical front end to a Subversion repository — Subversion is a Version Control system ⇨Integrates with Windows Explorer — No separate client application required ⇨All TortoiseSVN functionality present in Windows Explorers File menu or context menu (obtained by right-clicking within a Windows Explorer window)2
  3. 3. Infrequent Tasks ⇨Creating a repository — A one-time creation activity, not used often — Should be created by the repository administrator — A freshly created repository does not contain any user files ⇨Importing files into a repository — An already existing project that must be placed under version control must be imported to the repository ⇨Checking out files — Copies files from the repository to a local directory. The directory stores the working copy3
  4. 4. Creating Subversion Repositories 4
  5. 5. Creating A Repository-1 The Subversion repository must be created in an empty directory. Right-click anywhere in the Explorer window to obtain the context menu displayed here.5
  6. 6. Creating A Repository-2 Press the |Create folder structure| button to create the default folder structure used by most projects, or press |OK| to exit. Once the repository is created, it will be maintained by Subversion. Do NOT try to maintain this directory manually. Attempts to create/rename/modify/delete files in the repository will corrupt the repository.6
  7. 7. Populating The Repository WithExisting Non-versioned Files 7
  8. 8. Importing Into A Repository-1 Choose the directory that contains files to be placed under version control. Remove any generated files like PDFs, zip or any other archives, prior to this operation. Store only those files that must be versioned in this directory.8
  9. 9. Importing Into A Repository-2 Specify the URL path to the repository. The URL will provided by the administrator. Provide an appropriate message here, representing the files being imported into the repository.. Auto-Properties assigns properties to files. Actual file properties applied depend on properties set by the administrator/developer for various file types. Commonly a needs-lock property is set for binary files. Do NOT un-check Auto-Properties unless you know what youre doing.9
  10. 10. Creating A Working Copy From TheSubversion Repository10
  11. 11. Creating A Working Copy-1 Preferably choose an empty directory name within which to extract the working copy.11
  12. 12. Creating A Working Copy-2 Specify the URL path to the repository. The URL will provided by the administrator. Specify an empty directory name. Use Fully Recursive to checkout all files and subdirectories recursively. Press |Choose items| if you wishChoose the Revision option only to check out only specific directories,if you need to extract a specific instead of the complete directoryrevision from the repository. Use tree.the |Show Log| button to helpdetermine the revision to extract.12
  13. 13. Creating A Working Copy-3 Pressing |Choose items| displays this dialog. Only checked folders will be checked out.13
  14. 14. Creating A Working Copy-4 Selected folders are copied from the repository to the working copy.14
  15. 15. Creating A Working Copy-5 Never access the .svn folder. Manually changing the .svn folder can cause a mismatch with the repository, making commits impossible. All files and directories that are versioned are displayed using an icon overlay – (the green check mark within the icon). The directory now contains all files extracted from the repository.15
  16. 16. Daily Usage Cycle 16
  17. 17. Operations For Daily Use ⇨Update the working copy ⇨Lock binary files in the working copy — Text files can also be locked if you need to exclusively work with the file ⇨Edit the files ⇨Commit the changes to the repository17
  18. 18. Update The Working Copy-118
  19. 19. Update The Working Copy-219
  20. 20. Lock Files-120
  21. 21. Lock Files-2 State why you want to lock the file(s). Uncheck files that will not be changed in this edit cycle. Do NOT check this without first consulting the repository administrator.21
  22. 22. Lock Files-322
  23. 23. Edit Files Edit files using an appropriate application. For example, Framemaker for .fm/.book files, OpenOffice for .doc/.xls/.ppt files, or any of your favorite text editors for text files.23
  24. 24. Commit Files-124
  25. 25. Commit Files-2 Specify a suitable log message. List of changed files. Any new files created are not versioned, since they are not part of the repository. Check new files that must be versioned in this box. Choose this if you wish to commit files and continue editing the files. Leave this unchecked if the editing work on the files25 is complete.
  26. 26. Common Tasks ⇨Extracting an older version ("Export") ⇨Displaying the revision log ⇨Releasing a lock ⇨Undo changes to the last updated version ⇨Rolling back to a previous revision ⇨Checking the repository for modifications ⇨Viewing the difference between text files ⇨Adding/Renaming/Deleting/Moving files in the repository ⇨Ignoring files that should not be stored in the repository26
  27. 27. Extracting An Older Version27
  28. 28. Exporting An Older Revision-1 Choose an empty directory.28
  29. 29. Exporting An Older Revision-2 If unsure about the required revision number, press the |Show log| button.29
  30. 30. Exporting An Older Revision-3 Choose the required revision based on the log message, or revision date or author.30
  31. 31. Exporting An Older Revision-4 The chosen revision number is filled in.31
  32. 32. Exporting An Older Revision-5 Unlike checked-out folders, exported folders do NOT contain the .svn administrative folders. An exported revision is not suitable for modifications. If you intended to modify the exported revision and commit the changes to the repository, use the checkout option instead.32
  33. 33. Displaying The Revision Log33
  34. 34. Displaying Revision Logs-1This folder must contain aworking copy from therepository.34
  35. 35. Displaying Revision Logs-2 If required, filter log messages displayed by typing a search string. If required, filter log messages displayed by date using the From and To drop-downs. Log message for selected revision. List of files added, or modified, or deleted in the selected revision.35
  36. 36. Displaying Revision Logs-3 Filter text applies to log text, author, or filename. Only logs matching filter displayed. Matching filter string is shown highlighted.36
  37. 37. Undoing Changes(Reverting To The Last UpdatedVersion) 37
  38. 38. Undoing Changes-1 To undo any changes made, use the Revert option. This will revert any changes made after the last Update operation.38
  39. 39. Undoing Changes-2 List of files modified since the last Update operation. All checked files will be reverted. To prevent a modified file from losing its changes, un-check the box preceding the file name.39
  40. 40. Undoing Changes-340
  41. 41. Releasing Locks41
  42. 42. Releasing Locks-1 Choose the Release lock option for files that are locked but that will not be edited prior to the commit. That is, these files are not subject to changes for this revision.42
  43. 43. Releasing Locks-2 The icon overlay changes to gray for unlocked files.43
  44. 44. Rolling Files Back To An OlderRevision44
  45. 45. Rolling A File Back To An Earlier Revision -1 Right-click the file that you need to roll back to a previous version. Display the log window using Show log.45
  46. 46. Rolling A File Back To An Earlier Revision -2 1. Right-click the required version. 2. Select Revert to this revision.46
  47. 47. Rolling A File Back To An Earlier Revision -347
  48. 48. Rolling A File Back To An Earlier Revision -4 If the file was rolled back erroneously, use the Revert procedure described earlier to revert the file back to the state prior to the roll back.48
  49. 49. Rolling A Directory Back To AnOlder Revision49
  50. 50. Rolling A Directory Back To An Earlier Revision -1Right-click the directory youneed to roll back. Display the log window using Show log.50
  51. 51. Rolling A Directory Back To An Earlier Revision -2 1. Right-click the required version. 2. Select Revert to this revision.51
  52. 52. Rolling A Directory Back To An Earlier Revision -3 !WARNING! ======== When reverting the complete working directory to older revisions, files that did not exist in older revisions will be deleted. Recover these files using the procedure to Revert changes as described earlier.52
  53. 53. Checking For Modifications53
  54. 54. Checking For Modifications-1 Check for modifications against the current version and the last updated revision (also called working base).54
  55. 55. Checking For Modifications-2 List of files in the working copy that differ from the files in the working base. Use this button to check the files in the working copy which differ from those in the repository. This is a slow operation if you have too many files in the repository.55
  56. 56. Viewing Version DifferencesBetween Text Files 56
  57. 57. Viewing Version Differences-157
  58. 58. Viewing Version Differences-258
  59. 59. Viewing Version DifferencesBetween Specific Revisions59
  60. 60. Viewing Version Differences Between Specific Revisions-160
  61. 61. Viewing Version Differences Between Specific Revisions-2 To compare revision 245 and 190, control click the revisions, right-click and choose Compare revisions.61
  62. 62. Viewing Version Differences Between Specific Revisions-3 Lists all files that differ across the selected revisions. Right-click any file and choose Compare revisions to view the difference between the two files. (This will not work if the file is a binary file)62
  63. 63. Viewing Version Differences Between Specific Revisions-463
  64. 64. Adding New Files To The Repository64
  65. 65. Adding New Files-1 New files or folders are not automatically added. Explictly add new folders and files.65
  66. 66. Adding New Files-2 Lists files and directories present in the working copy which do not exist in the repository.66
  67. 67. Adding Files Outside The WorkingCopy 67
  68. 68. Adding Files Outside The Working copy ⇨To add files from outside your working copy you can use the drag-and-drop handler: — Select the files you want to add — Right-drag them to the new location inside the working copy — Release the right mouse button — Select the context menu option: SVN Copy and Add files to this WC The files will then be copied to the working copy and added to version control.68
  69. 69. Renaming and Deleting FilesUnder Version Control69
  70. 70. Renaming Objects Under Version Control Always rename objects under version control using the Rename option. Do NOT directly rename the object using Windows Explorer.70
  71. 71. Deleting Objects Under Version Control Always delete objects under version control using the Delete option. Do NOT directly delete the object using Windows Explorer.71
  72. 72. Moving Objects Within The Repository ⇨To move files inside a working copy, use the drag- and-drop handler again: — Select the files or directories you want to move — Right-drag them to the new location inside the working copy — Release the right mouse button — In the popup menu select SVN Move Versioned Items Here72
  73. 73. Rename/Move/Delete Procedure ⇨Best way to Rename/Move/Delete files/dirs — Commit all changes — Release all locks (if any remain after the commit) — SVN Update — Verify no locks are held on objects to be renamed/moved/deleted using the Check for modifications dialog to check the repository status — SVN Rename/Move/Delete — SVN Commit preferably from the top level folder — SVN Update73
  74. 74. Adding Files/Directories To AnIgnore List (Method 1)74
  75. 75. Adding Files To An Ignore List Files added to an Ignore list for the project are ignored during a commit operation. Use this method for add either individual files or directories to the Ignore list, or groups of files based on a wildcard value (Like *.bak as shown in the figure).75
  76. 76. Adding Files/Directories To AnIgnore List (Method 2)76
  77. 77. Adding Files/Directories To An Ignore List-1 ⇨Right-click the directory containing the files/directories to be ignored for version control ⇨Choose Properties ⇨Choose the Subversion Tab77
  78. 78. Adding Files/Directories To An Ignore List-2 Choose the Subversion tab from the Folder Properties dialog. Press the |Properties| button.78
  79. 79. Adding Files/Directories To An Ignore List-3 Press the |New| button.79
  80. 80. Adding Files/Directories To An Ignore List-4 Choose the Advanced option80
  81. 81. Adding Files/Directories To An Ignore List-5 Enter the list of files and directories to ignore. Ideally these files/directories are generated automatically using either an editor or some kind of build process. Choose this at the top-level working directory. Alternately, explicitly set the ignore list for every folder within the working directory.81
  82. 82. Adding Files/Directories To An Ignore List-6 List of properties that will be set for the folder after pressing the |OK| button82
  83. 83. Including A Common Sub-project83
  84. 84. Including A Common Sub-project -1 ⇨A folder checked into a Subversion repository may need to be referenced elsewhere — within the same project, or — within a different project on the same Subversion server — within a different project on some other Subversion server ⇨These folders can be referenced making use of the svn:externals property — svn:externals property syntax: ⊗ folder [-r revision_number] svn_repository_url — A subsequent checkout or update automatically creates folder whose contents are obtained from svn_repository_url84
  85. 85. Including A Common Sub-project -2 ⇨Example: — A web-site project stored at the repository URL http://svnserve/www_pages/ needs to access graphic files available in the repository URL http://svnserve/corp/graphics/ ⊗ To resolve: set the svn:externals property for the www_pages folder as: http://svnserve/corp/graphics/ graphics — An application project stored at the repository URL http://svnapps/gendoc/ needs to access templates from revision 103 of the repository http://svnserve/corp/templates ⊗ To resolve: set the svn:externals property for the gendoc folder as: -r 103 http://svnserve/corp/templates templates85
  86. 86. Setting svn:externals using TSVN-1 Choose the Subversion tab from the folder property sheet of a folder in the working copy. Choose the |Properties| button to set the svn:externals property on the working copy folder.86
  87. 87. Setting svn:externals using TSVN-2 Press the |New| button.87
  88. 88. Setting svn:externals using TSVN-3 Choose the Externals option.88
  89. 89. Setting svn:externals using TSVN-4 Type in the folder name to create. In this example, a folder called graphics will be created in the working copy. Its contents are updated based on the contents of the repository URL specified (http://stdoc-web01/.../master/graphics)89
  90. 90. Setting svn:externals using TSVN-5 The svn:externals property is now set. However it will take effect only on a subsequent SVN Update.90
  91. 91. Tagging/Branching A Subversion Repository91
  92. 92. Tagging/Branching A Subversion Repository⇨Subversion repository root usually contains: — /trunk/ — /branches/ — /tags/⇨Use the Subversion copy command to branch/tag the current or main branch — Copy to the /branches/ directory of a repository to create a branch — Copy to the /tags/ directory of a repository to create a tag⇨Branched/tagged versions accessible — by checking out the repository with /tag/, or /branch/ as part of the URL — by using the Subversion switch command to switch the working copy to/from /trunk/ to /branches/.../ or /tags/.../92
  93. 93. Tagging/Branching A Subversion Repository⇨Subversion repository root usually contains: — /trunk/ — /branches/ — /tags/⇨Use the Subversion copy command to branch/tag the current or main branch — Copy to the /branches/ directory of a repository to create a branch — Copy to the /tags/ directory of a repository to create a tag⇨Branched/tagged versions accessible — by checking out the repository with /tag/, or /branch/ as part of the URL — by using the Subversion switch command to switch the working copy to/from /trunk/ to /branches/.../ or /tags/.../93
  94. 94. Branching A Subversion Repository Using TSVN-1 Choose the Branch/tag option from the TortoiseSVN menu after right-clicking the folder to be branched.94
  95. 95. Branching A Subversion Repository Using TSVN-2 Current repository URL. URL of new branch. This branch must NOT already exist. Provide a log message for the branch/tag. Check this option to automatically switch the current working copy to the newly created branch.95
  96. 96. Branching A Subversion Repository Using TSVN-3 Revision number will be incremented by 1 after the branch is created.96
  97. 97. Conflict Handling97
  98. 98. Conflicts ⇨Two types — File conflict — Tree conflict98
  99. 99. File Conflict-1 ⇨Alice modifies file from revision 32 — Text file relnotes-10.2.sth, lines 10-16 — Text file relnotes-10.1.sth, lines 34-40 — Binary file releasenotes.fm ⇨Bob modifies file from revision 32 — Text file relnotes-10.2.sth, lines 15-17 — Text file relnotes-10.1.sth, lines 10-19, 20-27, 45-48 — Binary file releasenotes.fm ⇨Alice commits changes resulting in revision 33 ⇨Bob gets an error on committing. (Working copy for Bob is rev 32, but latest repository revision for these files is rev 33 — Bob must therefore run SVN Update99
  100. 100. File Conflict-2 ⇨Bob runs SVN Update to update the working copy to r33 — Alices changes to relnotes-10.1.sth merge with Bobs changes successfully. — Alices changes to relnotes-10.2.sth and releasenotes.fm conflict with Bobs changes. ⊗ Subversion detects text file conflicts and creates • relnotes-10.2.sth, containing conflict markers) • relnotes-10.2.mine.sth (this is relnotes-10.2.sth with Bobs changes) • relnotes-10.2.r32.txt (the original file before any changes) • relnotes-10.2.r33.txt (this is relnotes-10.2.sth with Alices changes) ⊗ Subversion detects binary file conflicts and creates • releasenotes.r32.fm (Original file before any changes) • releasenotes.r33.fm (this is releasenotes.fm after Alices changes) • releasenotes.fm containing Bobs changes is not affected unlike text files. (No concept of .mine for binary files)100
  101. 101. File Conflict-3 ⇨To resolve the conflict: — Compare relnotes-10.2.r33.sth and relnotes-10.2.mine.sth for changes. Use a guideline to edit relnotes-10.2.sth suitably, removing conflict markers (lines containing <<<<< and >>>>>) — Compare releasenotes.r33.fm and releasenotes.fm (FrameMakers File>Utilities>Compare Documents...) and fix releasnotes.fm — Choose SVN Resolve from the TortoiseSVN menu ⊗ relnotes-10.2.r32.sth, relnotes-10.2.r33.sth, relnotes-10.2.mine.sth, releasenotes.r33.fm, releasenotes.r32.fm will be automatically deleted on resolution — SVN Commit101
  102. 102. Tree Conflicts-1 ⇨Tree conflict — Different users work with the same set of files and directories, creating incompatible new tree structures ⇨Tree conflicts arise when the directory structure is changed by one or more users — One user deletes, the other user renames — One user deletes, the other user modifies — One user modifies, the other user renames — One user deletes, the other user copies — One user renames, the other user renames to something else — ...102
  103. 103. Tree Conflicts-2 ⇨Tree conflict resolution — Determine the cause ⊗ Right-click the conflicted directory, select svn edit conflicts — To resolve: ⊗ Discard your changes and accept the other users directory changes ⊗ Alternately, communicate with the other user, and accept and commit your changes after arriving at a consensus. Do NOT do this without first communicating your intent with the user who caused the tree conflict.103
  104. 104. Best Practices-1 ⇨Commit should be at a directory level — AVOID commits on files. Stop thinking in terms of files! ⇨Commit from a parent folder that includes all folders affected by a move operation — AVOID committing individual folders affected by a move. This will mess up the repository for yourself and possibly other users. ⇨Release locks before svn rename/move/delete operations ⇨Treat file content changes and directory changes as mutually exclusive for a commit operation. — File content change => commit — Dir change (rename/move/delete) ==> commit — File content + Dir change => Not a good idea104
  105. 105. Best Practices-2 ⇨Commit after finishing a task — Adjust the commits to the content of your work, not to the work time (every midday, every evening, etc.) ⇨Communicate with each other after a conflict ⇨Close files in a working copy before running svn commit or svn update — Not doing so can cause possible data loss!105
  106. 106. Best Practices-3 ⇨AVOID Committing open files ⇨AVOID Updating a working copy containing opened files ⇨AVOID Checkout at root level — No need of branches, tags, and trunk in working copy ⇨AVOID Commits on or within tags/ folder ⇨AVOID Locks in different working copies for the same repository location — Eg: Working copy on a home PC as well as on the office PC. ⇨AVOID Empty commit messages ⇨AVOID Commits which include directory modifications as well as file modifications106
  107. 107. Need More Detailed Info? Read the TortoiseSVN manual - http://tghyara-pc.idc.oracle.com/~tghyara/sw/dev/subversion/docs/TortoiseSVN_en.pdf107
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×