{"thread":{"id":"49520","subject":"Git svn bug on merging svn branches","startedAt":"2018-10-10T00:10:15Z","lastAt":"2018-10-10T18:36:21Z","messageCount":2,"participants":["Артем Семенов","Andreas Heiduk"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"359965","messageId":"49aa05bf-1848-51ca-8b98-5f1796dd8bdf@jarillolabs.com","threadId":"49520","inReplyTo":null,"subject":"Git svn bug on merging svn branches","fromName":"Артем Семенов","fromEmail":"artem.semenov@jarillolabs.com","sentAt":"2018-10-09T23:38:43Z","receivedAt":"2018-10-10T00:10:15Z","isPatch":false,"sender":{"key":"artem.semenov@jarillolabs.com","avatar":null},"body":"Hello.\n\nGit svn bug on merging svn branches:\n\nSvn repository (branches tag trunk).\n\n1. Add a some file by svn tools.\n2. Create a new branch by svn tools (e.g. br1) .\n3. Create a new branch by svn tools on branch br1 (e.g. br2).\n4. Add some changes to file f1 in branch br1. Commit by svn tools.\n5. Clone repository by git svn.\n6. Create two local branches – br1_svn (on origin/br1) and br2_svn (on \norigin/br2);\n7. Checkout to br2_svn. Add some changes (e.g add file f2). Execute git \nadd, git commit.\n8. Execute “git merge br1_svn”.\n9. Checkout to br1_svn.\n10. Execute “git svn info” - URL refers to br1. (URL: \nhttps://127.0.0.1/svn/branchtest/branches/br1)\n11. Execute “git merge br2_svn”.\n12. Execute “git svn info” - URL refers to br2. (URL: \nhttps://127.0.0.1/svn/branchtest/branches/br2)\n\n-- \nWith my best regards,\n  Artem Semenov               mailto:artem.semenov@jarillolabs.com\n"},{"id":"360052","messageId":"a74ed565-124c-0047-57ae-5857ab644b23@gmail.com","threadId":"49520","inReplyTo":"49aa05bf-1848-51ca-8b98-5f1796dd8bdf@jarillolabs.com","subject":"Re: Git svn bug on merging svn branches","fromName":"Andreas Heiduk","fromEmail":"asheiduk@gmail.com","sentAt":"2018-10-10T18:36:10Z","receivedAt":"2018-10-10T18:36:21Z","isPatch":false,"sender":{"key":"asheiduk@gmail.com","avatar":"https://avatars.githubusercontent.com/u/9371344?v=4"},"body":"Hello,\n\nAm 10.10.2018 um 01:38 schrieb Артем Семенов:\n> Hello.\n> \n> Git svn bug on merging svn branches:\n> \n> Svn repository (branches tag trunk).\n> \n> 1. Add a some file by svn tools.\n> 2. Create a new branch by svn tools (e.g. br1) .\n> 3. Create a new branch by svn tools on branch br1 (e.g. br2).\n> 4. Add some changes to file f1 in branch br1. Commit by svn tools.\n> 5. Clone repository by git svn.\n> 6. Create two local branches – br1_svn (on origin/br1) and br2_svn (on\n> origin/br2);\n> 7. Checkout to br2_svn. Add some changes (e.g add file f2). Execute git\n> add, git commit.\n> 8. Execute “git merge br1_svn”.\n> 9. Checkout to br1_svn.\n> 10. Execute “git svn info” - URL refers to br1. (URL:\n> https://127.0.0.1/svn/branchtest/branches/br1)\n> 11. Execute “git merge br2_svn”.\n> 12. Execute “git svn info” - URL refers to br2. (URL:\n> https://127.0.0.1/svn/branchtest/branches/br2)\n\nThe \"CAVEAT\" section in the git-svn manual already contains some text about\nyour case:\n\n       If you do merge, note the following rule: git svn dcommit will attempt\n       to commit on top of the SVN commit named in\n\n           git log --grep=^git-svn-id: --first-parent -1\n\n       You must therefore ensure that the most recent commit of the branch you\n       want to dcommit to is the first parent of the merge. Chaos will ensue\n       otherwise, especially if the first parent is an older commit on the\n       same SVN branch.\n\nThe paragraphs before these lines give more reasons to avoid a non-linear\nhistory in SVN branches.\n\nBest regards\nAndreas Heiduk\n"}]}