Where can I get large sample TFS repositories?
Asked Answered
A

6

8

I'm building a tool to integrate with TFS and it needs to properly parse TFS logs (from the tf.exe history command) and checkout different revisions (again using tf.exe). It works great on the test TFS server I have, but I want to test it on a broad range of large repositories to make sure my parsing works properly.

I'd hoped to use Codeplex to get access to TFS repositories, but it seems you only get TFS access to Codeplex projects if you're a project member.

Are there any collections of open source code hosted on public TFS servers? Are there any other publicly available servers I could use for testing?

Ashcraft answered 11/8, 2011 at 9:7 Comment(1)
This question would be on-topic at opendata.stackexchange.comKristin
D
2

I would suggest using svn2tfs and choose any relatively active project on SourceForge. There are plenty of projects on SF to choose from that use SVN and not CVS. You might even get a bonus out of it and help the svn2tfs project work out any kinks.

Disavow answered 22/8, 2011 at 2:31 Comment(2)
Unfortunately this approach will only give me a limited set of the kinds of changes TFS supports. My tool already correctly parses the basics, but TFS supports weird changes like "merge, edit" and other combinations. Since these don't exist in SVN/CVS they won't show up if I import from another repository. It's because of these TFS-specific history entries that I want access to real TFS servers.Ashcraft
1. why is merge/edit weird? 2. you can simulate merge by branching out of trunk, updating the branch with next revision, and merging back to trunk.Colpotomy
C
1

Since you mention tf history command, I assume you want to collect/parse logs on the project's (and its files) history of checkins.

So in addition to large repository, you also need a good amount of history, am I right? If yes, then here's your set of problems:

  • Most projects on codeplex use Mercurial, not TFS. So even if you get access, you cannot use TFS with them.
  • As you mentioned, they require you to a be a member for you to access the source.
  • Even if you get access or find a public server (unlikely), you still would need good amount of history.

If I'm correct in my assumptions so far, here's the easiest (bit tedious though) way out:

  • Go to any large projects's such as Nuget or Wix revisions
  • Download any old revision (go back as far as you want the history for). You can download zipped src files without being a member.
  • In your test server, checkin the code (src) to create the baseline.
  • Download the next revision.
  • Checkout files in your server and overwrite them with the newer revision's files.
  • While checkin, use the history.txt (sample) to create checkin comments
  • Repeat this process few times.

Voila!! You now have a large repository with lot of history!

Hope this helps.

Colpotomy answered 21/8, 2011 at 22:47 Comment(3)
Thanks for such a detailed answer, but unfortunately this isn't quite what I need. Following this approach, I'll get a repository with a small subset of the operations TFS supports. My test server already has the basic add, update, and delete changes but TFS also supports more esoteric changes like "merge, edit" and other combinations. (The change type is actually a bitmask so I guess in theory almost any combination is possible, though it's hard to reason what some combinations mean.)Ashcraft
1. why is merge/edit weird? 2. you can simulate merge by branching out of trunk, updating the branch with next revision, and merging back to trunk.Colpotomy
Merge/edit isn't weird as such, it's just not going to appear in my TFS logs if I import from another SCM (or from a series of changing files as you suggested in your answer). I'm writing a tool that translates logs from TFS to an internal format so I need to test usings logs that use all the TFS features.Ashcraft
H
0

Have you tried some of the larger projects on Codeplex?

If you only need read access you should be able to play around with the various repositories.

Hoyos answered 11/8, 2011 at 13:2 Comment(2)
Unfortunately accessing projects on Codeplex doesn't seem to be possible unless you're a project member. I couldn't get it to work, and neither can people discussing it at codeplex.codeplex.com/Wikipage?title=Source%20Control%20ClientsAshcraft
Why not contact the owner(s) of a few projects to request access? My project is only small, but I don't see why I couldn't grant access for a short while...Osteoporosis
O
0

I don't have a huge amount of tfs experience, but I would assume there are migration tools that let you ingest code repositories from other products (e.g svn or hit).

If so, you might want to find a svn/git repo for a sizable foss project, and try importing that.

Oeuvre answered 21/8, 2011 at 17:0 Comment(0)
E
0

"I'd hoped to use Codeplex to get access to TFS repositories, but it seems you only get TFS access to Codeplex projects if you're a project member."

This solution appears to be the general consensus amoung SO'rs. I've read some of the Codeplex TFS connection problem threads (you linked to below) and I hope the comments in this thread resolves the issue:

Connecting to Codeplex TFS as a Coordinator or Developer.

Emelineemelita answered 22/8, 2011 at 4:21 Comment(1)
Unfortunately I've looked at this a little more closely and this page codeplex.codeplex.com/Wikipage?title=Source%20Control%20Clients confirms that you need to be a project member. "If you are not a developer on a project then you need to use a Subversion client to anonymously access the source control repository" is the key phrase.Ashcraft
L
0

I'm wondering if you can use git-tfs project to import an existing Git project into TFS.

  1. Download and install git-tfs
  2. Create a new TFS project
  3. Clone the TFS project to a Git project using git-tfs ("git tfs clone http://tfs:8080/tfs/DefaultCollection $/some_project")
  4. Import a existing Git project of your choice into your fresh new Git project (I don't know the command but I think it's possible).
  5. Use git-tfs to checkin to TFS Server ("git tfs checkintool")

=> Do it makes sense ? And works ?

For more information: http://lostechies.com/jimmybogard/2011/09/20/git-workflows-with-git-tfs/

Lagging answered 15/2, 2012 at 21:20 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.