I have a SVN project with following architecture (empty trunk
and tags
)
https://svn-repo.com/svn/company
+--my_project
| +--trunk (empty)
| +--branches
| | +--my_branch
| | +--my_branch2
| | +--temp_branch1
| | +--temp_branch2
| | +--temp_branch3
| +-tags (empty)
I would like to use TortoiseGit to clone this repository into a git repository with branches my_branch
and my_branch2
and being able to commit changes back to SVN.
I have been able to clone a single branch by not checking any boxes related to Trunk, Tags, Branch and putting the URL to the branch (e.g. https://svn-repo.com/svn/company/my_project/branches/my_branch
) and specifying the first SVN revision of the branch.
I have tried to put the URL https://svn-repo.com/svn/company/my_project
and checking all the boxes but this failed each time.
Question 1: How to clone the SVN repository with all its branches to Git through TortoiseGit?
Question 2: What is the way (if it exists) to only keep certain branches in the Git repository (namely, removing all the branches temp_branchN
)?
I found a bit of if using git-svn CLI (like this related topic) but nothing relevant for TortoiseGit.
Thanks a lot
Question 1 A mix of TortoiseGit + patch of config file (c.f. below)
Question 2 Based on Lazy Barger hints, I came up with the following flow
.git/config
file edited by hand to add the desired branchesThe following shall be added in the svn-remote
part
[svn-remote "svn"]
url = https://myserver:8443/svn/WorkRoot
fetch = my_project/trunk:refs/remotes/origin/trunk
branches = my_project/branches/my_branch*:refs/remotes/branches/*
SVN fetch
to pull out the branchesThe last command might take a while because it starts searching from revision 1.
Switch/Checkout
to change the branchNote: To perform the command equivalent to svn update
, I use Git SVN Rebase
and select the correct upstream corresponding to the remote branch (and not the trunk which is selected by default).
Hope it helps