On Thu, Mar 7, 2013 at 10:25 AM, Jeremy Rosen <jeremy.rosen@xxxxxxxxxxx> wrote: > Hello everybody > > > I am trying to use git-subtree to follow a subproject but I have a couple of problems and I am not sure if I am doing something wrong > > Basically I am trying to use a tag on the subproject as my "base" for the subproject but subtree doesn't seem to handle that properly > > > my first attempt was to simply do > > "git subtree add --squash git://git.buildroot.net/buildroot 2013.02" > > but subtree refused, telling me that the SHA of the tag is not a valid commit. > Ok it makes sense, though I think this is a very valid use-case... > > so I tried > > "git subtree add git://git.buildroot.net/buildroot 2013.02^{commit}" > > which was refused because git fetch can't parse the ^{commit} marker. > Again it makes sense, but I really want to start from that tag. > > > so I tried > > "git fetch git://git.buildroot.net/buildroot 2013.02" > "git subtree add --squash FETCH_HEAD" > > which worked. Ok at that point I am slightly abusing git subtree, but it seems a valid usage > > except that this last attempt causes serious problems when trying to split out the tree again > > the call to "git commit-tree" within "git subtree split" complains that the SHA of the parent > is not a valid commit SHA. Which is true, it's the SHA of the tag. > > > At this point I am not sure if I am abusing subtree, if I have a legitimate but unimplemented use-case and how to > fix/implement it. > > the squash-commit message only contains the SHA of the tag, should it contain the SHA of the commit ? > > "subtree split" can only handle commit SHA, should it somehow follow tag SHA too ? how ? > > this is probably a trivial fix for someone with good knowledge of git-subtree but i'm not there yet, so any hint would be welcomed > > Regards > > Jérémy Rosen > Hi Jérémy, Git subtree ignores tags from the remote repo. To follow a project in a subdirectory I would use git-subtree add selecting a branch, not a tag, from the other repo. Then use git-subtree pull to keep yourself updated. e.g. To add: git subtree add --prefix=$subdir $repo $branch Then to update: git subtree pull --prefix=$subdir $repo $branch If you make any changes on the branch and wanted to push them back you could do that with: git subtree pull --prefix=$subdir $repo2 $branch2 $repo2 and $branch2 would be different from $repo and $branch if you wanted to push to your own fork before submitting a pull request. -- Paul [W] Campbell -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html