### Example Repository Structure Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-import.html Illustrates a typical project directory structure before importing into a repository. ```text C:\\Projects\\Widget\\source C:\\Projects\\Widget\\doc C:\\Projects\\Widget\\images ``` -------------------------------- ### Tag URL Example Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-branchtag.html An example of a destination URL for a tag, typically used to mark specific release versions. ```text https://svn.example.com/repos/ProjectName/tags/Release_1.10 ``` -------------------------------- ### Simple Sub-string Search Examples Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-showlog.html These examples demonstrate how to use simple sub-string searches to filter log messages. They cover inclusion, exclusion, and combined logic. ```text Alice Bob -Eve ``` ```text Alice -Bob +Eve ``` ```text -Case +SpecialCase ``` ```text !Alice Bob ``` ```text !-Alice -Bob ``` ```text "Alice and Bob" ``` ```text "" ``` ```text "Alice says ""hi"" to Bob" ``` -------------------------------- ### TortoiseIDiff Command Line Example Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-automation-idiff.html Use this command to launch TortoiseIDiff with specified left and right image files, custom titles, and display modes like fit and overlay. ```bash TortoiseIDiff.exe /left:"c:\images\img1.jpg" /lefttitle:"image 1" /right:"c:\images\img2.jpg" /righttitle:"image 2" /fit /overlay ``` -------------------------------- ### Simple tsvncmd URL for Update Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-automation-urlhandler.html This example demonstrates a basic tsvncmd URL to update a working copy to a specific revision. Ensure the 'tsvncmd:' protocol is registered on the system. ```html Update ``` -------------------------------- ### WinMerge Configuration Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html Example of configuring WinMerge (version 2.8 or later) as the external diff/merge program. ```shell C:\Path-To\WinMerge.exe %merged ``` -------------------------------- ### Icon Overlay Settings Example Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html Illustrates the hierarchical application of include and exclude rules for icon overlays. The first matching rule found by searching upwards from a path is applied. Conflicts are resolved by giving precedence to single directory specifications over recursive ones, and inclusion over exclusion. ```plaintext Exclude: C: C:\develop\? C:\develop\tsvn\obj C:\develop\tsvn\bin Include: C:\develop ``` -------------------------------- ### Perforce Merge Configuration Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html Example of configuring Perforce Merge as the external diff program using parameter substitution. ```shell C:\Path-To\P4Merge.exe %base %theirs %mine %merged ``` -------------------------------- ### KDiff3 Merge Configuration Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html Example of configuring KDiff3 as the external merge program, including title and output file parameters. ```shell C:\Path-To\kdiff3.exe %base %mine %theirs -o %merged --L1 %bname --L2 %yname --L3 %tname ``` -------------------------------- ### DiffMerge Configuration Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html Example of configuring DiffMerge with specific parameters for caption, result, and file titles. ```shell C:\Path-To\DiffMerge.exe -caption=%mname -result=%merged -merge -nosplash -t1=%yname -t2=%bname -t3=%tname %mine %base %theirs ``` -------------------------------- ### JavaScript Example of SubWCRev COM Interface Usage Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev-com-interface.html This script demonstrates how to instantiate and use the SubWCRev COM object in JavaScript to retrieve various working copy details. It shows how to call GetWCInfo and GetWCInfo2 with different parameters and access properties like Revision, Date, Author, and more. ```javascript // testCOM.js - javascript file // test script for the SubWCRev COM/Automation-object filesystem = new ActiveXObject("Scripting.FileSystemObject"); revObject1 = new ActiveXObject("SubWCRev.object"); revObject2 = new ActiveXObject("SubWCRev.object"); revObject3 = new ActiveXObject("SubWCRev.object"); revObject4 = new ActiveXObject("SubWCRev.object"); revObject1.GetWCInfo( filesystem.GetAbsolutePathName("."), 1, 1); revObject2.GetWCInfo( filesystem.GetAbsolutePathName(".."), 1, 1); revObject3.GetWCInfo( filesystem.GetAbsolutePathName("SubWCRev.cpp"), 1, 1); revObject4.GetWCInfo2( filesystem.GetAbsolutePathName("..\..\.."), 1, 1, 1); wcInfoString1 = "Revision = " + revObject1.Revision + "\nMin Revision = " + revObject1.MinRev + "\nMax Revision = " + revObject1.MaxRev + "\nDate = " + revObject1.Date + "\nURL = " + revObject1.Url + "\nAuthor = " + revObject1.Author + "\nHasMods = " + revObject1.HasModifications + "\nIsSvnItem = " + revObject1.IsSvnItem + "\nNeedsLocking = " + revObject1.NeedsLocking + "\nIsLocked = " + revObject1.IsLocked + "\nLockCreationDate = " + revObject1.LockCreationDate + "\nLockOwner = " + revObject1.LockOwner + "\nLockComment = " + revObject1.LockComment; wcInfoString2 = "Revision = " + revObject2.Revision + "\nMin Revision = " + revObject2.MinRev + "\nMax Revision = " + revObject2.MaxRev + "\nDate = " + revObject2.Date + "\nURL = " + revObject2.Url + "\nAuthor = " + revObject2.Author + "\nHasMods = " + revObject2.HasModifications + "\nIsSvnItem = " + revObject2.IsSvnItem + "\nNeedsLocking = " + revObject2.NeedsLocking + "\nIsLocked = " + revObject2.IsLocked + "\nLockCreationDate = " + revObject2.LockCreationDate + "\nLockOwner = " + revObject2.LockOwner + "\nLockComment = " + revObject2.LockComment; wcInfoString3 = "Revision = " + revObject3.Revision + "\nMin Revision = " + revObject3.MinRev + "\nMax Revision = " + revObject3.MaxRev + "\nDate = " + revObject3.Date + "\nURL = " + revObject3.Url + "\nAuthor = " + revObject3.Author + "\nHasMods = " + revObject3.HasModifications + "\nIsSvnItem = " + revObject3.IsSvnItem + "\nNeedsLocking = " + revObject3.NeedsLocking + "\nIsLocked = " + revObject3.IsLocked + "\nLockCreationDate = " + revObject3.LockCreationDate + "\nLockOwner = " + revObject3.LockOwner + "\nLockComment = " + revObject3.LockComment; ``` -------------------------------- ### Default Trunk URL Example Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-branchtag.html This is the default destination URL for a new branch, representing the main line of development. ```text https://svn.example.com/repos/ProjectName/trunk ``` -------------------------------- ### Example of svn:externals property format Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-howto-common-projects.html This property defines external projects to be checked out into specified sub-folders. Each line specifies a checkout folder name and the repository URL. ```text common/lib http://svn.example.com/repos/lib common/utils http://svn.example.com/repos/utils ``` -------------------------------- ### Use SubWCRev COM Object in C# Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev-com-interface.html This C# example shows how to instantiate the SubWCRev COM object and use its GetWCInfo method to check if a file is part of an SVN working copy. It displays a message box indicating the versioned status. ```csharp using LibSubWCRev; SubWCRev sub = new SubWCRev(); sub.GetWCInfo("C:\\PathToMyFile\\MyFile.cc", true, true); if (sub.IsSvnItem == true) { MessageBox.Show("versioned"); } else { MessageBox.Show("not versioned"); } ``` -------------------------------- ### SubWCRev Ignore Patterns Example Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html Examples of ignore patterns for the .subwcrevignore file. Patterns are matched against paths relative to the repository root or the .subwcrevignore file's location. Patterns are case-sensitive. ```bash /trunk/doc /trunk/doc/* ``` ```bash doc doc/* ``` ```bash *.png *.jpg *.ico *.bmp ``` -------------------------------- ### Create Repository Shortcut Target Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-howto-repo-shortcut.html Use this command in a shortcut's target field to open the repository browser at a specific URL. Replace 'url/to/repository' with the actual repository path. ```bash TortoiseProc.exe /command:repobrowser /path:"url/to/repository" ``` -------------------------------- ### Create SVN Repository using Command Line Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-repository.html Use this command to create a new Subversion repository in a specified folder using the svnadmin tool. Ensure the folder exists and is empty. ```bash svnadmin create --fs-type fsfs MyNewRepository ``` -------------------------------- ### Araxis Merge Configuration Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html Example of configuring Araxis Merge with various command-line options for diff and merge operations. ```shell C:\Path-To\compare.exe /max /wait /3 /title1:%tname /title2:%bname /title3:%yname %theirs %base %mine %merged /a2 ``` -------------------------------- ### Import Files/Directories (CLI) Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-cli-main.html This command imports an unversioned directory into the repository. ```bash svn import -m LogMessage PATH URL ``` -------------------------------- ### Local Folder Structure for Import Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-repository.html Create this local folder structure on your hard drive before importing it into the repository to establish the basic layout. ```text C:\\Temp\\New\\trunk C:\\Temp\\New\\branches C:\\Temp\\New\\tags ``` -------------------------------- ### Get Lock (CLI) Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-cli-main.html This command locks files in your working copy to prevent others from modifying them. Use --force to steal existing locks. ```bash svn lock -m "LockMessage" [--force] PATH... ``` -------------------------------- ### Create Repository (CLI) Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-cli-main.html This command creates a new Subversion repository at the specified path. --fs-type fsfs specifies the filesystem type. ```bash svnadmin create --fs-type fsfs PATH ``` -------------------------------- ### Pre-RevProp-Change Hook Example (Batch) Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-repository-hooks.html This batch script implements a pre-revprop-change hook. It allows changes to the 'svn:log' property but rejects changes to any other property by sending an error message to stderr and exiting with a non-zero status. ```batch rem Only allow log messages to be changed. if "%4" == "svn:log" exit 0 echo Property '%4' cannot be changed >&2 exit 1 ``` -------------------------------- ### Update Check File Format Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-admins-upgradecheck.html The text file at the specified URL must follow this format: version string, custom message, and download URL. Ensure the version string exactly matches the TortoiseSVN installation package. ```text 1.9.1.6000 A new version of TortoiseSVN is available for you to download! http://192.168.2.1/downloads/TortoiseSVN-1.9.1.6000-svn-1.9.1.msi ``` -------------------------------- ### Checkout Command Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-cli-main.html Use this command to check out a working copy from a repository. Options include specifying depth, ignoring externals, and checking out a specific revision. ```bash svn checkout [-depth ARG] [--ignore-externals] [-r rev] URL PATH ``` -------------------------------- ### Perform a Hot Copy Backup of a Repository Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-repository-backup.html Use this command to create a safe copy of your repository. Ensure no processes are accessing the repository during the copy. ```bash svnadmin hotcopy path/to/repository path/to/backup ``` -------------------------------- ### Info Command Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-cli-main.html Retrieves information about a working copy or repository URL. This is often used as a preliminary step for other commands. ```bash svn info URL_of_WC ``` -------------------------------- ### Complex tsvncmd URL for Show Compare Source: https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-automation-urlhandler.html This example shows a more complex tsvncmd URL to compare two different URLs at specified revisions. Note the use of URL encoding for parameters if they contain special characters, though not explicitly shown here. ```html compare ```