{"thread":{"id":"30062","subject":"[git-svn] Per-Branch Metadata","startedAt":"2012-03-26T14:54:18Z","lastAt":"2012-03-26T14:54:18Z","messageCount":1,"participants":["greened@obbligato.org"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"187725","messageId":"87pqbzct0l.fsf@smith.obbligato.org","threadId":"30062","inReplyTo":null,"subject":"[git-svn] Per-Branch Metadata","fromName":"","fromEmail":"greened@obbligato.org","sentAt":"2012-03-26T14:54:18Z","receivedAt":"2012-03-26T14:54:18Z","isPatch":false,"sender":{"key":"greened@obbligato.org","avatar":"https://avatars.githubusercontent.com/u/5291869?v=4"},"body":"Hello All,\n\nAs far as I know, git-svn metadata is global to the repository.  That\nworks well for common cases but begins to break down as soon as subtree\nmerges (and maybe submodules) are involved.\n\nHere is the scheme I like to use:\n\n- Many components, each with its own repository mirrored from svn\n\n- One \"project\" repository that aggregates the components with subtree\n  merges (via git-subtree)\n\nTypically I work on one or two components, making commits that I'd like\nto dcommit back to svn.  Because svn metadata is global I can't keep\nmetadata for each component in the project repository.  Instead I have\nto have this in my work area:\n\nworkarea\n  project\n  commit\n    component1\n    component2\n    component3\n    ...\n\nThat is, I have a separate checked-out copy of each individual\ncomponent.  Each of these repositories has the svn metadata for its\ncomponent.\n\nThen when I'm ready to dcommit, I do something roughly like this in\nthe project repository:\n\n- git subtree split --rejoin --branch=component1_commit\n- git push <workarea/commit/component1> component1_commit\n- cd workarea/commit/component1\n- git svn fetch\n- git checkout component1_commit\n- git svn dcommit\n\nWhat I'd rather do is this:\n\n- git subtree split --rejoin --branch=component1_commit\n- git checkout component1_commit\n- git svn fetch    # Keep metadata separate in this branch for any other \n                   # metadata\n- git svn dcommit\n\nIf we had metadata per branch I wouldn't have to keep around an entire\nduplicate of all of the project source that only gets used as a vehicle\nto dcommit.  I would simply create a branch for each component and\npopulate it with its svn metadata.\n\nHas there been any discussion about this model of operation for git-svn?\nI imagine it would be a rather large change.  I'd be willing to put some\ntime into implementing this if it sounds feasible.\n\nThanks!\n\n                       -Dave\n"}]}