{"id":239,"date":"2007-06-04T23:07:47","date_gmt":"2007-06-04T21:07:47","guid":{"rendered":"http:\/\/www.lucas-nussbaum.net\/blog\/?p=239"},"modified":"2007-06-04T23:07:47","modified_gmt":"2007-06-04T21:07:47","slug":"distributed-scm-and-branching-a-sub-directory","status":"publish","type":"post","link":"https:\/\/www.lucas-nussbaum.net\/blog\/?p=239","title":{"rendered":"Distributed SCM and branching a sub-directory ?"},"content":{"rendered":"<p>I am considering switching from SVN to a distributed SCM for my personal stuff. I had a look at git and mercurial, but neither really support branching a sub-directory:<\/p>\n<p>Often, I am working on a big private project, and, while working on a sub-project (stored inside the project&#8217;s repository), I&#8217;d like to share that sub-project with others. So there are actually two problems:<\/p>\n<ul>\n<li>being able to checkout\/branch\/clone a sub-directory<\/li>\n<li>possibility to control access on a per-directory basis<\/li>\n<\/ul>\n<p>SVN only partially meets my needs with that (it&#8217;s possible to checkout a sub-directory directly, for example with <code>svn co svn:\/\/svn.debian.org\/svn\/pkg-ruby-extras\/tools\/ruby-pkg-tools<\/code>). I think that it&#8217;s possible to do fine-grained access control<br \/>\nusing libapache2-svn, but I haven&#8217;t tried yet.<\/p>\n<p>It seems that mercurial can do that, using the forest extension. But you have to convert the specific directory into a repository, with a complex step to keep the history.<\/p>\n<p><strong>Amongst the distributed SCM, is there one that supports that ?<\/strong> (at least the sub-directory branching part)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I am considering switching from SVN to a distributed SCM for my personal stuff. I had a look at git and mercurial, but neither really support branching a sub-directory: Often, I am working on a big private project, and, while working on a sub-project (stored inside the project&#8217;s repository), I&#8217;d like to share that sub-project [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"0","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,13,12,7],"tags":[],"class_list":["post-239","post","type-post","status-publish","format-standard","hentry","category-debianubuntu","category-planetdebian","category-planetubuntu","category-technology"],"_links":{"self":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=239"}],"version-history":[{"count":0,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/239\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}