Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8833273
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 14, 20262026-06-14T08:44:28+00:00 2026-06-14T08:44:28+00:00

I used the following command to clone svn repo into git and after executing

  • 0

I used the following command to clone svn repo into git and after executing it, i see some spurious branches.

git svn clone [SVN repo URL] --no-metadata -A authors-transform.txt --stdlayout ~/temp

git branch -a

*(no branch)
  master
  remotes/abc-1.3.x
  remotes/abc-1.3.x@113346
  remotes/abc-1.3.x@541512
  remotes/branch_test_script
  remotes/tags/modules-1.2
  remotes/tags/modules-1.2@113346
  remotes/tags/modules-1.2@516265
  remotes/tags/release-1.1
  remotes/tags/release-1.1@113346
  remotes/tags/release-1.1@468862
  remotes/trunk

Actual branches created in svn were abc, branch_test_script, modules and release.
Can someone help in understanding what ‘abc-1.3.x@113346’ , ‘abc-1.3.x@541512’ … ‘release-1.1@468862’ etc are ?

How can we get rid of these spurious branches / what do they signify ?

Thanks,
Gayathri

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-14T08:44:29+00:00Added an answer on June 14, 2026 at 8:44 am

    tl;dr:

    git svn creates these “@”-branches if a branch (or tag) was created for a subdirectory (or for another directory which is not tracked by git-svn). There will always also be a “regular” branch with the same name, but without the “@” suffix. The “@”-branch only exists as a branching point for the regular branch.


    Note: I submitted a patch for this; an edited version of this explanation is now part of the official git svn manpage, as a new section “HANDLING OF SVN BRANCHES” (since Git 1.8.1).


    In Subversion, branches and tags are just copies of a directory tree, so it’s possible (though usually discouraged) to create a branch from a directory that is not itself a branch (or trunk). For example, by copying /trunk/foo to /branches/bar, instead of copying /trunk (a “subdirectory branch”, so to speak), or by copying a directory that lies outside the trunk/tags/branches structure (which is possible in SVN).

    In git, however, a branch is always for the whole repo, subdirectory branches do not exist. git svn therefore uses a workaround. If it detects a branch that was copied from a directory that is not itself tracked as a branch by git-svn, it will create a new history. For example, for a subdirectory branch where /trunk/foo is copied to /branches/bar in r1234, it will create:

    • A new git commit for each SVN revision from r1233 on backwards (note the number is the last revision before the branch was created). The trees of these commits will only contain the subdirectory that was branched. So for each revision from r1233 backwards, there will usually be two git commits, one with the whole tree (created when git-svn processed the history of trunk), and the new ones.
    • A dummy branch called “bar@1233” (branch name@revision), which poinst to the commit created from r1233 above.
    • A commit from r1234, the commit that created the branch. This commit will have the branch above as its (only) ancestor.
    • A branch called “bar”, which points to the second commit.

    In that way, for the subdirectory branch bar, you get two branches in git

    • bar@1233 , which represents the state of the repository that the branch was created from
    • bar, which represents the branch

    I’m not quite sure why this dummy branch is created. I think it is done to represent the information about which revision the branch was branched from, and to have a complete history for the branch.


    Note that this whole mechanism can be switched off by using the flag --no-follow-parent. In that case, each SVN branch will result in a git branch with just the commits from the SVN branch directory. Each branch will be unconnnected to the rest of the history, and will have its own root commit, corresponding to the first commit in the branch.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I used following command on windows xp and its working perfectly fine. rundll32.exe url.dll,FileProtocolHandler
I just used repo to clone the android source via the following commands repo
I used the following sed command to find and replace an old string with
I am mostly following this page: http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html I used this command to create the
I used the following command to create a google map on a page: map
Hi all i have used the following command to generate war file from my
In the past I've used svn and cvs, but never BitBucket or Git. I
I used the following command to find the duration of an mp3 file: $
I'm new to Git but have used SVN a great deal. I've been reading
I used following code, but it displays only 2 digit of ISO country name.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.