git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Git drawbacks?

From
Avery Pennarun <apenwarr@gmail.com>
Date
Nov 6, 2009, 17:51 UTC
Message-ID
<32541b130911060951q3358ce9ahe28fb0cf902853f2@mail.gmail.com>
In-Reply-To
<loom.20091106T180313-750@post.gmane.org>
On Fri, Nov 6, 2009 at 12:35 PM, Dmitry Smirnov <divis1969@gmail.com> wrote:
Show 7 quoted lines
> No, #2 is about the repository slicing, branching, merging (SCM in other words).
> Let's suppose I have the product that have 2 directories: component1 and
> component2. They were developing together for  previous product (on the same
> branch, for example). Now, I would like to have component1 and replace
> component2 with some 3rd party component. What should I do with Git to get this?
> Or maybe I wish to stick with some version of component2 and provide only bug
> fixes for this product...
There are three methods I know of to manage this:
1) Just commit whatever version of a subproject you want as a subtree
of your current project, and if you want to replace/delete/upgrade it,
just do that.  (You rarely want to track the actual *history* of the
third party tool, just the history of versions *you* used, which is
easy to do.)
2) Use git-submodule to link repositories together.  (Arguably, one
major reason 'repo' was written is that git-submodule is too
complicated, though.)
3) Try my git-subtree tool, which basically makes it easier to
split/join repositories (similar to #1) without losing the history
(similar to #2).
Show 6 quoted lines
>> This
>> lousy performance isn't the case in git (except in Windows).  Are you
>> using Windows, by chance?
>
> yes. I did not yet noticed any performance problems with Git on windows, except
> a sync/download time (for android, mostly)

Basically, performance is linear with the number of files in your repo. If you can check out just a "slice" of your repo (say 10% of the whole), you'll have faster performance (eg. 10x) from any VCS.

git on Linux is so fast that this isn't very necessary most of the time. But git on Windows isn't really any faster than other VCSes on Windows, so the time-per-file is much greater, and thus the penalty for huge repositories is much worse. Doing things like switching branches, which is near-instantaneous on Linux even with tens of thousands of files, really crawls on Windows.

So I can see an argument that Windows users would want arbitrary "slices" much more often than Linux+git users, but I think this is largely due to performance, not because people really *want* to be stuck with a restricted view of the repo.

Have fun,
Avery
Previous: Jacob HelwigNext: david@lang.hm
Message 5 of 27 in “Git drawbacks?”
  1. Dmitry SmirnovNov 6, 2009
  2. Avery PennarunNov 6, 2009
  3. Dmitry SmirnovNov 6, 2009
  4. Jacob HelwigNov 6, 2009
  5. Avery PennarunNov 6, 2009
  6. david@lang.hmNov 6, 2009
  7. Dmitry SmirnovNov 9, 2009
  8. Jacob HelwigNov 9, 2009
  9. Dmitry SmirnovNov 9, 2009
  10. Jacob HelwigNov 9, 2009
  11. Dmitry PotapovNov 9, 2009
  12. Dmitry SmirnovNov 9, 2009
  13. Dmitry PotapovNov 9, 2009
  14. Dmitry SmirnovNov 10, 2009
  15. Dmitry PotapovNov 10, 2009
  16. Dmitry SmirnovNov 10, 2009
  17. Paolo BonziniNov 10, 2009
  18. B Smith-MannschottNov 9, 2009
  19. Dmitry PotapovNov 9, 2009
  20. Dmitry SmirnovNov 10, 2009
  21. Dmitry PotapovNov 10, 2009
  22. Dmitry SmirnovNov 10, 2009
  23. Paolo BonziniNov 10, 2009
  24. Dmitry PotapovNov 10, 2009
  25. Dmitry SmirnovNov 10, 2009
  26. Dmitry SmirnovNov 9, 2009
  27. Dmitry SmirnovNov 11, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.