threads / discuss / 16595

git-svn feature request: exclude certain subpaths on clone

Subject: git-svn feature request: exclude certain subpaths on clone

## tl;dr

2 messages between Dec 4, 2008 and Dec 6, 2008.

replies: 1people: 2as markdown or json

Wade Berrier· Dec 4, 2008, 16:43 UTC · lore
Hi,
Consider the following example layout:

trunk/src trunk/big_fat_binary_blobs trunk/doc

I think it would be really nice to be able to tell git-svn to ignore 'big_fat_binary_blobs' while keeping 'src' and 'doc'.

I know someone is thinking, "Why did you check in 'big_fat_binary_blobs' in the first place?" In this case, the repository is out of my control. For the svn users, it's not that big of a deal since they only get one HEAD version of the binary_blobs. But when trying to clone with git-svn, I repeatedly get out of memory and packing errors (every 1000 commits) when packing several revisions of these binary_blobs. (Now, that may be a bug in of itself... which can reproduced by creating an svn repo with several revisions of KNOPPIX at the same path, followed by a git svn clone )

Anyway, I still think it may be useful to be able to ignore certain paths on a clone. In thinking about the implementation details, I figure probably the best approach would be to manually purge the unwanted path after it has been fetched, but before it is committed. That way, if a commit contains changes in paths that are both wanted and unwanted, the commit could be 'pruned'.

I've looked at the git-svn script a little, but wanted to solicit feedback and ideas before continuing further.

Thoughts?
Wade
Eric Wong· Dec 6, 2008, 00:13 UTC · re: Wade Berrier · lore

Re: git-svn feature request: exclude certain subpaths on clone

Wade Berrier <wberrier@gmail.com> wrote:
Show 30 quoted lines
> Hi,
> 
> Consider the following example layout:
> 
> trunk/src
> trunk/big_fat_binary_blobs
> trunk/doc
> 
> I think it would be really nice to be able to tell git-svn to ignore
> 'big_fat_binary_blobs' while keeping 'src' and 'doc'.
> 
> I know someone is thinking, "Why did you check in
> 'big_fat_binary_blobs' in the first place?"  In this case, the
> repository is out of my control.  For the svn users, it's not that big
> of a deal since they only get one HEAD version of the binary_blobs.
> But when trying to clone with git-svn, I repeatedly get out of memory
> and packing errors (every 1000 commits) when packing several revisions
> of these binary_blobs.  (Now, that may be a bug in of itself... which
> can reproduced by creating an svn repo with several revisions of
> KNOPPIX at the same path, followed by a git svn clone )
> 
> Anyway, I still think it may be useful to be able to ignore certain
> paths on a clone.  In thinking about the implementation details, I
> figure probably the best approach would be to manually purge the
> unwanted path after it has been fetched, but before it is committed.
> That way, if a commit contains changes in paths that are both wanted
> and unwanted, the commit could be 'pruned'.
> 
> I've looked at the git-svn script a little, but wanted to solicit
> feedback and ideas before continuing further.
Maybe... What about git-filter-branch?

I realize that doing it at the git-svn level can save bandwidth; but it might not be possible with the way SVN deltas work...

I'll try to get around to splitting git-svn.perl out to separate source files this weekend so it's easier to navigate.

-- 
Eric Wong

← back to recent threads