Coder Social home page Coder Social logo

Comments (8)

spraints avatar spraints commented on June 19, 2024

Out of curiosity, how long does it take to pull down a fresh copy of the repository to a TFS workspace?

Also, what version of git-tfs did you download or build?

IO (local file and TFS DB) is typically the bottleneck on clone or quick-clone. Depending on the version of git-tfs you're using, it could also be spinning up lots of subprocesses, which isn't fast. I may someday rewrite clone and/or quick-clone to address speed issues.

You might take a look at tfs2git to see if you can speed up your clone time. Once the repository is mirrored into git, git tfs fetch will be much more performant.

from git-tfs.

JamesDunne avatar JamesDunne commented on June 19, 2024

Straight from TFS the whole repository shouldn't take more than 20 minutes I think. I haven't pulled down the entire project's repository in a long time; I usually just work within a specific branch and subproject which is about 10% the size of the entire repository, clocking in around 11,000 files I think.
git-tfs definitely needs a way to clone partial sections of a repository; we have lots of branches of code in our TFS project. I don't think I could do tfs2git since the repository has upwards of 123,000 changesets now, which is why quick-clone sounded attractive to me.
I built the git-tfs from your git repo just yesterday, commit id 44d6f40.

from git-tfs.

JamesDunne avatar JamesDunne commented on June 19, 2024

I'm doing a git tfs fetch now and it takes about 12 seconds per changeset, consistently.

from git-tfs.

spraints avatar spraints commented on June 19, 2024

On larger projects, I generally don't clone the whole thing. I try to find the narrowest directory that works. e.g. if there is $/Project with "Docs", "Third Party", and "Source" in it, I just git tfs clone http://blah $/Project/Source. If you wanted Third Party and Source but not docs, you should be able to set the config value tfs-remotes.default.ignore-paths to "^Docs". You can also give this to git-tfs when you clone: git tfs clone --ignore-regex=^Docs http://blah $/Project/Source. I often use this flag for large files (like the MSDE installer) that are sometimes unnecessarily included in the source tree somewhere.

from git-tfs.

JamesDunne avatar JamesDunne commented on June 19, 2024

Aha! Thanks for that. I'll definitely try that the next time I can. Thanks for your help and your quick responses!

from git-tfs.

JamesDunne avatar JamesDunne commented on June 19, 2024

Hi Matt,
I was able to put together an effective ignore-regex and also checked out only the specific branch of code I needed. I ended up with 14,600 objects checked out at an average rate of 0.726 objects/sec download rate. This took 5 hours and 19 minutes to complete, according to your -d(ebug) mode. All of the time is being spent in the DownloadFile method, which is to be expected, but I'm not sure why it is so slow. I'm downloading over a VPN connection this time, whereas my last report was over wi-fi at the office. I'll do a checkout with vanilla TFS next and see if there's any significant difference.

from git-tfs.

JamesDunne avatar JamesDunne commented on June 19, 2024

Okay, TFS is just slow. :P. I'm sure it's our completely-competent-in-every-way networking staff's fault.

from git-tfs.

JamesDunne avatar JamesDunne commented on June 19, 2024

Closing this issue since the problem is solely contained within the DownloadFile API call to TFS.

from git-tfs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.