{"thread":{"id":"10928","subject":"[user] git-svn and svn cp","startedAt":"2007-11-19T11:11:36Z","lastAt":"2007-11-20T13:06:04Z","messageCount":11,"participants":["gerhard.oettl.ml@ogersoft.at","Matthieu Moy","David Kastrup","Benoit Sigoure","Eric Wong"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"60293","messageId":"47416F68.9070908@ogersoft.at","threadId":"10928","inReplyTo":null,"subject":"[user] git-svn and svn cp","fromName":"","fromEmail":"gerhard.oettl.ml@ogersoft.at","sentAt":"2007-11-19T11:11:36Z","receivedAt":"2007-11-19T11:11:36Z","isPatch":false,"sender":{"key":"gerhard.oettl.ml@ogersoft.at","avatar":null},"body":"I hope this is the correct mailing list. If not please point me in the \nright direction.\n\n\nI played a little with git (1.5.3.4 / debian) and had the following \nobservation:\nDoing a \"svn cp\" (for example for a tag) results in a large traffic when \ndoing a \"git-svn fetch\" afterwards.\n\nTo verify I did:\ngit-svn clone -s svn://www.ogersoft.at/ogerlit\ngit-svn fetch\nsvn cp svn://... svn://... (one file ca 3mb)\nsvk checkout (a tcpflow output of about 3k - plaintext commands, I think \na svn checkout would be the same)\ngit-svn fetch (a tcpflow output of 700k - containing a textdelta of \nnearly 700k)\n\n\nSo the question remains:\nDoes svn-git dont know about lightweight svn copies?\nor can svn-git not handle them correct by now?\nor did I something wrong?\n\n\nthanks\ngerhard\n"},{"id":"60295","messageId":"vpq3av25sg0.fsf@bauges.imag.fr","threadId":"10928","inReplyTo":"47416F68.9070908@ogersoft.at","subject":"Re: [user] git-svn and svn cp","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@imag.fr","sentAt":"2007-11-19T12:29:51Z","receivedAt":"2007-11-19T12:29:51Z","isPatch":false,"sender":{"key":"git@matthieu-moy.fr","avatar":"https://avatars.githubusercontent.com/u/14709?v=4"},"body":"gerhard.oettl.ml@ogersoft.at writes:\n\n> I hope this is the correct mailing list. If not please point me in the\n> right direction.\n>\n>\n> I played a little with git (1.5.3.4 / debian) and had the following\n> observation:\n> Doing a \"svn cp\" (for example for a tag) results in a large traffic\n> when doing a \"git-svn fetch\" afterwards.\n>\n> To verify I did:\n> git-svn clone -s svn://www.ogersoft.at/ogerlit\n\nI guess the --tags=... and --branches=... options of git-svn can help.\n\n[ disclaimer: I never used git-svn on a repository with branches and\n  tags ]\n\n-- \nMatthieu\n"},{"id":"60296","messageId":"86k5oez9f5.fsf@lola.quinscape.zz","threadId":"10928","inReplyTo":"vpq3av25sg0.fsf@bauges.imag.fr","subject":"Re: [user] git-svn and svn cp","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-11-19T12:50:22Z","receivedAt":"2007-11-19T12:50:22Z","isPatch":false,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"Matthieu Moy <Matthieu.Moy@imag.fr> writes:\n\n> gerhard.oettl.ml@ogersoft.at writes:\n>\n>> I hope this is the correct mailing list. If not please point me in the\n>> right direction.\n>>\n>>\n>> I played a little with git (1.5.3.4 / debian) and had the following\n>> observation:\n>> Doing a \"svn cp\" (for example for a tag) results in a large traffic\n>> when doing a \"git-svn fetch\" afterwards.\n>>\n>> To verify I did:\n>> git-svn clone -s svn://www.ogersoft.at/ogerlit\n>\n> I guess the --tags=... and --branches=... options of git-svn can help.\n\nYou are aware of what the \"-s\" option does?\n\n-- \nDavid Kastrup\n"},{"id":"60297","messageId":"vpqzlxa2y2f.fsf@bauges.imag.fr","threadId":"10928","inReplyTo":"86k5oez9f5.fsf@lola.quinscape.zz","subject":"Re: [user] git-svn and svn cp","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@imag.fr","sentAt":"2007-11-19T12:56:40Z","receivedAt":"2007-11-19T12:56:40Z","isPatch":false,"sender":{"key":"git@matthieu-moy.fr","avatar":"https://avatars.githubusercontent.com/u/14709?v=4"},"body":"David Kastrup <dak@gnu.org> writes:\n\n> Matthieu Moy <Matthieu.Moy@imag.fr> writes:\n>\n>>> To verify I did:\n>>> git-svn clone -s svn://www.ogersoft.at/ogerlit\n>>\n>> I guess the --tags=... and --branches=... options of git-svn can help.\n>\n> You are aware of what the \"-s\" option does?\n\nNot in the details. Well, I believe the accurate question (to original\nposter) is: does your svn repository use the standard svn layout\n(tags/, branches/, trunk/)?\n\n-- \nMatthieu\n"},{"id":"60303","messageId":"EB96D9F3-D69C-4D46-961C-27885CBC0E52@lrde.epita.fr","threadId":"10928","inReplyTo":"vpqzlxa2y2f.fsf@bauges.imag.fr","subject":"Re: [user] git-svn and svn cp","fromName":"Benoit Sigoure","fromEmail":"tsuna@lrde.epita.fr","sentAt":"2007-11-19T13:20:09Z","receivedAt":"2007-11-19T13:20:09Z","isPatch":false,"sender":{"key":"tsunanet@gmail.com","avatar":"https://avatars.githubusercontent.com/u/128281?v=4"},"body":"On Nov 19, 2007, at 1:56 PM, Matthieu Moy wrote:\n\n> David Kastrup <dak@gnu.org> writes:\n>\n>> Matthieu Moy <Matthieu.Moy@imag.fr> writes:\n>>\n>>>> To verify I did:\n>>>> git-svn clone -s svn://www.ogersoft.at/ogerlit\n>>>\n>>> I guess the --tags=... and --branches=... options of git-svn can  \n>>> help.\n>>\n>> You are aware of what the \"-s\" option does?\n\nI personally don't know and I went through the code to see that it's  \nan (undocumented) alias for --stdlayout.\n\n> Not in the details. Well, I believe the accurate question (to original\n> poster) is: does your svn repository use the standard svn layout\n> (tags/, branches/, trunk/)?\n\nI think this is irrelevant to the question he asked.\n\nNow I think that the fact that SVN does \"lightweight\" copies by  \nrecording that such modification was in fact an `svn cp' / `svn mv'  \nisn't important for git-svn, because the data end up in the Git  \nrepository which handles copies and moves much much better than SVN  \ndoes.  But here the concerns raised by Gerhard seem to be more  \nnetwork-wise, in which case I don't know.  I looked at the code,  \nthings seem to happen under the hood of Git::SVN::Fetcher but I don't  \nsee what can be optimized (the code isn't trivial).  Most of the  \naccess are done through the underlying SVN Perl bindings, so if  \nsomeone knows how to use them better, I think Eric will be eager to  \nsee the patches :)\n\n-- \nBenoit Sigoure aka Tsuna\nEPITA Research and Development Laboratory\n\n\n"},{"id":"60304","messageId":"474190EB.2090701@ogersoft.at","threadId":"10928","inReplyTo":"EB96D9F3-D69C-4D46-961C-27885CBC0E52@lrde.epita.fr","subject":"Re: [user] git-svn and svn cp","fromName":"","fromEmail":"gerhard.oettl.ml@ogersoft.at","sentAt":"2007-11-19T13:34:35Z","receivedAt":"2007-11-19T13:34:35Z","isPatch":false,"sender":{"key":"gerhard.oettl.ml@ogersoft.at","avatar":null},"body":"Benoit Sigoure schrieb:\n> On Nov 19, 2007, at 1:56 PM, Matthieu Moy wrote:\n\n> I think this is irrelevant to the question he asked.\n> \n> Now I think that the fact that SVN does \"lightweight\" copies by \n> recording that such modification was in fact an `svn cp' / `svn mv' \n> isn't important for git-svn, because the data end up in the Git \n> repository which handles copies and moves much much better than SVN \n> does.  \n\nI hoped this and it was one of the motivations for looking at git  ;-)\n\nBut why is so much traffic necessary to transfer data that is already \n_complete_ present in the local git repository?\nTraffic that seams not to be necessary when using the \"not so good\" svn.\n\n\ngerhard\n"},{"id":"60307","messageId":"861wamz780.fsf@lola.quinscape.zz","threadId":"10928","inReplyTo":"474190EB.2090701@ogersoft.at","subject":"Re: [user] git-svn and svn cp","fromName":"David Kastrup","fromEmail":"dak@gnu.org","sentAt":"2007-11-19T13:37:51Z","receivedAt":"2007-11-19T13:37:51Z","isPatch":false,"sender":{"key":"dak@gnu.org","avatar":"https://avatars.githubusercontent.com/u/52141349?v=4"},"body":"\ngerhard.oettl.ml@ogersoft.at writes:\n\n> Benoit Sigoure schrieb:\n>> On Nov 19, 2007, at 1:56 PM, Matthieu Moy wrote:\n>\n>> I think this is irrelevant to the question he asked.\n>>\n>> Now I think that the fact that SVN does \"lightweight\" copies by\n>> recording that such modification was in fact an `svn cp' / `svn mv'\n>> isn't important for git-svn, because the data end up in the Git\n>> repository which handles copies and moves much much better than SVN\n>> does.  \n>\n> I hoped this and it was one of the motivations for looking at git  ;-)\n>\n> But why is so much traffic necessary to transfer data that is\n> already _complete_ present in the local git repository?\n\nIs it?  What is the right behavior when the file has been changed\nwithin the git repository (after all, we are rebasing and not tracking\nthe svn archive)?\n\nWhile I would probably prefer getting a copy from the changed file\nrather than the original one, the matter does not seem completely\ntrivial in its implications.\n\n> Traffic that seams not to be necessary when using the \"not so good\"\n> svn.\n\nIt is not a git problem (git has good packing properties) but rather a\ngit-svn issue.  So don't blame git in general.\n\n-- \nDavid Kastrup\n"},{"id":"60308","messageId":"vpqtzni1h17.fsf@bauges.imag.fr","threadId":"10928","inReplyTo":"EB96D9F3-D69C-4D46-961C-27885CBC0E52@lrde.epita.fr","subject":"Re: [user] git-svn and svn cp","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@imag.fr","sentAt":"2007-11-19T13:49:56Z","receivedAt":"2007-11-19T13:49:56Z","isPatch":false,"sender":{"key":"git@matthieu-moy.fr","avatar":"https://avatars.githubusercontent.com/u/14709?v=4"},"body":"Benoit Sigoure <tsuna@lrde.epita.fr> writes:\n\n>> Not in the details. Well, I believe the accurate question (to original\n>> poster) is: does your svn repository use the standard svn layout\n>> (tags/, branches/, trunk/)?\n>\n> I think this is irrelevant to the question he asked.\n\nWell, I'm far enough from being a git-svn expert, but I suppose\ngit-svn will special-case the content of tags/ and branches/\ndirectories, and consider copies there to be tags and branches. I\ndon't know whether git-svn does it efficiently, though.\n\nIf you use \"svn copy\" with the meaning \"create a tag\" with a\ndestination other than tags/ directory, then, git-svn can not guess it\nwas actually a tag.\n\n-- \nMatthieu\n"},{"id":"60310","messageId":"A27F6A8E-705B-4D76-A84A-D25BA733EE49@lrde.epita.fr","threadId":"10928","inReplyTo":"vpqtzni1h17.fsf@bauges.imag.fr","subject":"Re: [user] git-svn and svn cp","fromName":"Benoit Sigoure","fromEmail":"tsuna@lrde.epita.fr","sentAt":"2007-11-19T14:04:24Z","receivedAt":"2007-11-19T14:04:24Z","isPatch":false,"sender":{"key":"tsunanet@gmail.com","avatar":"https://avatars.githubusercontent.com/u/128281?v=4"},"body":"On Nov 19, 2007, at 2:49 PM, Matthieu Moy wrote:\n\n> Benoit Sigoure <tsuna@lrde.epita.fr> writes:\n>\n>>> Not in the details. Well, I believe the accurate question (to  \n>>> original\n>>> poster) is: does your svn repository use the standard svn layout\n>>> (tags/, branches/, trunk/)?\n>>\n>> I think this is irrelevant to the question he asked.\n>\n> Well, I'm far enough from being a git-svn expert, but I suppose\n> git-svn will special-case the content of tags/ and branches/\n> directories, and consider copies there to be tags and branches. I\n> don't know whether git-svn does it efficiently, though.\n>\n> If you use \"svn copy\" with the meaning \"create a tag\" with a\n> destination other than tags/ directory, then, git-svn can not guess it\n> was actually a tag.\n\nNo, git-svn only needs to know where to look for branches and tags so  \nthat it can replicate them on the Git side by creating remote  \nbranches.  It has nothing to do with the fact that a tag or a branch  \nhappen to be a copy of something else (which isn't necessarily true,  \nI can perfectly create a tag out of the blue which has its own unique  \ncontent, same thing for branches).\n\nThe question of Gerhard was thus, why do we need to transfer \"so  \nmuch\" data over the network when we should be able to guess that the  \ndata is already in the Git repo (because git-svn can figure out that  \nsomething is a copy of something else -- because SVN records this  \ninformation -- and thus save the network from downloading useless  \ndeltas).  It's possible that the code can be optimized to handle  \nthis, or so I guess.\n\n-- \nBenoit Sigoure aka Tsuna\nEPITA Research and Development Laboratory\n\n\n"},{"id":"60324","messageId":"20071119162612.GA10122@soma","threadId":"10928","inReplyTo":"47416F68.9070908@ogersoft.at","subject":"Re: [user] git-svn and svn cp","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2007-11-19T16:26:12Z","receivedAt":"2007-11-19T16:26:12Z","isPatch":false,"sender":{"key":"e@80x24.org","avatar":null},"body":"gerhard.oettl.ml@ogersoft.at wrote:\n> I hope this is the correct mailing list. If not please point me in the \n> right direction.\n> \n> \n> I played a little with git (1.5.3.4 / debian) and had the following \n> observation:\n> Doing a \"svn cp\" (for example for a tag) results in a large traffic when \n> doing a \"git-svn fetch\" afterwards.\n> \n> To verify I did:\n> git-svn clone -s svn://www.ogersoft.at/ogerlit\n> git-svn fetch\n> svn cp svn://... svn://... (one file ca 3mb)\n> svk checkout (a tcpflow output of about 3k - plaintext commands, I think \n> a svn checkout would be the same)\n> git-svn fetch (a tcpflow output of 700k - containing a textdelta of \n> nearly 700k)\n> \n> \n> So the question remains:\n> Does svn-git dont know about lightweight svn copies?\n> or can svn-git not handle them correct by now?\n> or did I something wrong?\n\nOlder versions of the Perl SVN bindings have a broken do_switch()\nfunction, so I fall back to the do_update() function which re-downloads\nthe whole tree instead..\n\nSVN 1.4.4+ has this fix which allows do_switch() to be used instead of\ndo_update().\n\ndo_switch() will only download the delta between two trees if the parent\nis present.\n\nIf you don't have easy access to 1.4.4+ packages, I have patched 1.4.3\n(x86) packages here for Debian Etch (I haven't built 1.4.4 or 1.4.5 yet):\n\nhttp://git-svn.yhbt.net/svn/\n\n-- \nEric Wong\n"},{"id":"60408","messageId":"4742DBBC.9000809@ogersoft.at","threadId":"10928","inReplyTo":"20071119162612.GA10122@soma","subject":"Re: [user] git-svn and svn cp","fromName":"","fromEmail":"gerhard.oettl.ml@ogersoft.at","sentAt":"2007-11-20T13:06:04Z","receivedAt":"2007-11-20T13:06:04Z","isPatch":false,"sender":{"key":"gerhard.oettl.ml@ogersoft.at","avatar":null},"body":"Eric Wong schrieb:\n> gerhard.oettl.ml@ogersoft.at wrote:\n>> Does svn-git dont know about lightweight svn copies?\n\n> Older versions of the Perl SVN bindings have a broken do_switch()\n> SVN 1.4.4+ has this fix which allows do_switch() to be used\n\nThanks this sadisfies my question and its time to dive deeper into git \nand git-svn ...\n\n\ngerhard\n"}]}