#8042 Better handing of tmp dirs during merge

v1.4.0
closed
General
2016-01-27
2016-01-07
No

Doing a one-click merge of a very large repo can potentially cause problems if the working dir is bigger than the tmp dir mount supports.

  • def merge can use a try/finally so that shutil.rmtree always runs even if the clone fails (e.g. out of disk space)
  • see if its possible to a shared clone (see also _shared_clone) so the object files don't have to get copied, reducing disk usage and execution time.

It'd be nice if we could set a max size limit and check that in can_merge or merge_allowed but it doesn't seem to be a way to check the size of a working copy ahead of time. There is git count-objects -vH but that's just the repo size, not the working copy.

Discussion

  • Dave Brondsema

    Dave Brondsema - 2016-01-11
    • labels: stability --> stability, sf-current
     
  • Igor Bondarenko - 2016-01-12
    • labels: stability, sf-current --> stability, sf-current, 42cc
    • status: open --> in-progress
    • assigned_to: Igor Bondarenko
     
  • Dave Brondsema

    Dave Brondsema - 2016-01-13
    • labels: stability, sf-current, 42cc --> stability, sf-current, 42cc, sf-2
     
  • Denis Kotov - 2016-01-22

    git documentation says that to reduce the size of the repository can use git clone --local, git clone --reference, but we did not get the repository smaller than the repository derived from _shared_clone.
    We can't get repo size before clone in normal way, only if add some post-receive hook http://stackoverflow.com/questions/28678223/estimate-the-size-of-a-git-repository-before-cloning-it

     
  • Denis Kotov - 2016-01-22
    • status: in-progress --> review
     
  • Dave Brondsema

    Dave Brondsema - 2016-01-22

    What about using a shared clone? Sounds like that should work right?

    I've merged the try/finally commit since that part is good.

     
  • Dave Brondsema

    Dave Brondsema - 2016-01-22
    • status: review --> in-progress
    • Reviewer: Dave Brondsema
     
  • Denis Kotov - 2016-01-26
    • status: in-progress --> review
     
  • Dave Brondsema

    Dave Brondsema - 2016-01-27
    • status: review --> closed
     
  • Dave Brondsema

    Dave Brondsema - 2016-04-11
    • Milestone: unreleased --> v1.4.0
     

Log in to post a comment.