No announcement yet.

more granular push/pull

  • Filter
  • Time
  • Show
Clear All
new posts

  • more granular push/pull

    I have recently started to use GIT on a project, having previously (for many years) used Subversion. I was amazed to discover that GIT (unlike Subversion) only allows pushes and pulls at the top level of the repository. My project, and hence repository, consists of a large library plus 48 tools which use that library. I absolutely need the ability to push and pull from the individual tool (second level) folders. Is there something I'm missing or am I going to have to go back to Subversion for this project?

  • #2
    While Subversion repositories can cope with enormous objects, Git's repositories just shouldn't get that big due to a "clone" having *everything* in the repo (well, not really, but think that way and you'll not underestimate the time required for the clone operation).

    So if, in Subversion, you've got 49 "projects" then translating that into Git would become 49 repositories. This isn't as bad as it sounds since you can link together those repositories in a number of ways that, if you choose wisely, will make most of the tedious operations (like 49 clones) become trivial. Techniques such as "Git Submodules", "Git Subtrees", etc. Lots of strong opinions on the web about the various options - google and educate (e.g.

    The other warning is obvious: if you've got binaries in your library or tools then you will need to consider what to do with them since, if you carry them over into Git, your clone operations are going to be very long. Best to either use "Git LFS" or simply move the binaries into a proper binary repository (e.g.