[Mono-dev] Microsoft.TeamFoundation APIs

joel reed joel.reed at ddiworld.com
Wed Dec 20 19:09:39 EST 2006


Steve Deobald wrote:
> Joel, this rocks!
> 
> I'd love to take a look at this when I get back to Canada for the
> holidays. I spent some between-project time on Turtle, an open source
> GUI wrapper around TFS.EXE. The problem with this, of course, is that
> it was only a wrapper around TFS.EXE. :-)
> 
> You can take a look at the project page here:
> 
> http://www.codeplex.com/Wiki/View.aspx?ProjectName=Turtle
> 
> It was basically abandoned in its current form, but it's fully
> functional. Just as people were staffed back onto projects that paid
> money, it was widely determined that a re-write of Turtle that acted
> more like a subversion client would be preferrable and possible. Let
> me know if you're interested in quickly discussing the high-level
> design for this.

Steve,

Looks like an interesting project. I was hoping to eventually build a 
git-tfs tool (kind of like git-svn, git-cvs, etc.) Hopefully you are 
familiar with git (http://git.or.cz/). It seems like their would be alot 
of similarity in terms of overcoming limitations with TF.exe as pointed 
out on your site. (like "turd" files instead of hard binding to specific 
directories, offline mode, etc.) In the end, you might just want to wrap 
a git-tfs tool anyway, since stuff like offline support, tracking 
changes without using read-only flag, etc would probably drive you to 
implement much of the same stuff.

Anyway, you might also want to consider giving my codeplex account 
"developer" access to turtle. This would allow me to test my code 
against another TFS server. Or try out the test suite on the project 
yourself. Right now its only get/query type stuff, so no chance of 
mucking up your files.

jr

> 
> -Steve
> 
> PS: The current incarnation of Turtle is a WinForms app, but it
> wouldn't break my heart to rip out with WinForms views and drop in
> Gtk#.
> 
> On 12/19/06, joel reed <joel.reed at ddiworld.com> wrote:
>> Rafael Teixeira wrote:
>> > Hi Joel,
>> >
>> > Nice work so far but I couldn't find an open source TFS server to match
>> > it...
>> >
>> > Can you point me to some open source implementation of a backend to 
>> your
>> > APIs?
>>
>> I wish I could. TeamFoundation server consists of a SQL Server database,
>> sharepoint site, and an application tier consisting of a lot of web
>> services. It would be much more difficult to try and duplicate the
>> server side, then the client side, imho. I just want a client personally
>> so I could checkin/checkout code, respond to bugs, etc. on my *nix box.
>>
>> If you are really motivated, then another option would be to connect to
>> the TeamFoundation server on Microsoft's codeplex site
>> (http://www.codeplex.com). Its the only TFS server I know of that is
>> accessible via the Internet. However, to do this, you must have a
>> registered account, and be a "developer" or "coordinator" on a codeplex
>> project. Not very helpful, except for those very motivated to help
>> implement/test these APIs.
>>
>> jr
>>
>>
>> >
>> > Regards,
>> >
>> > On 12/19/06, joel reed <joel.reed at ddiworld.com> wrote:
>> >> Just in the interest of getting what I have done out their now, I'm
>> >> posting the following gzip'd patch against the 12/18/06 olive tree.
>> >>
>> >> Currently implemented functionality:
>> >>
>> >>    Get list of all projects in a repository
>> >>    Get project by name
>> >>    Get project by url
>> >>    Querying labels
>> >>    Downloading files
>> >>    Get list of all files in a project
>> >>
>> >> The patch adds a tool/tfs/tfs.cs which you can use to try out the 
>> above
>> >> functionality on a TFS server of your choice.
>> >>
>> >> Here's what's in the patch.
>> >>
>> >> (2225 /usr/local/src/olive) lsdiff ~/olive-with-tfs.v1.diff
>> >> olive/class/Makefile
>> >> olive/class/Microsoft.TeamFoundation/Assembly/AssemblyInfo.cs
>> >> olive/class/Microsoft.TeamFoundation/ICommonStructureService.cs
>> >> olive/class/Microsoft.TeamFoundation/Makefile
>> >> 
>> olive/class/Microsoft.TeamFoundation/Microsoft.TeamFoundation.dll.sources
>> >> olive/class/Microsoft.TeamFoundation/ProjectInfo.cs
>> >> olive/class/Microsoft.TeamFoundation/ProjectProperty.cs
>> >> olive/class/Microsoft.TeamFoundation/ProjectState.cs
>> >> olive/class/Microsoft.TeamFoundation.Client/Assembly/AssemblyInfo.cs
>> >> olive/class/Microsoft.TeamFoundation.Client/CommonStructureService.cs
>> >> olive/class/Microsoft.TeamFoundation.Client/Makefile
>> >> 
>> olive/class/Microsoft.TeamFoundation.Client/Microsoft.TeamFoundation.Client.dll.sources 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.Client/Microsoft.TeamFoundation.Client_test.dll.sources 
>>
>> >>
>> >> olive/class/Microsoft.TeamFoundation.Client/TeamFoundationServer.cs
>> >> 
>> olive/class/Microsoft.TeamFoundation.Client/Test/CommonStructureServiceTest.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.Client/Test/TeamFoundationServerTest.cs 
>>
>> >>
>> >> olive/class/Microsoft.TeamFoundation.Common/Assembly/AssemblyInfo.cs
>> >> olive/class/Microsoft.TeamFoundation.Common/InvalidPathException.cs
>> >> olive/class/Microsoft.TeamFoundation.Common/Makefile
>> >> 
>> olive/class/Microsoft.TeamFoundation.Common/Microsoft.TeamFoundation.Common.dll.sources 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.Common/TeamFoundationServerException.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Assembly/AssemblyInfo.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ChangesetVersionSpec.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ChangeType.cs
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/DateVersionSpec.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/DeletedState.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ExceptionEventArgs.cs 
>>
>> >>
>> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Failure.cs
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/GetOperation.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/GetOptions.cs
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/GetRequest.cs
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/GettingEventArgs.cs 
>>
>> >>
>> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Item.cs
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ItemNotMappedException.cs 
>>
>> >>
>> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ItemSet.cs
>> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ItemSpec.cs
>> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ItemType.cs
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/LabelVersionSpec.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/LatestVersionSpec.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/LockLevel.cs
>> >> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Makefile
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/MappingException.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Microsoft.TeamFoundation.VersionControl.Client.dll.sources 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Microsoft.TeamFoundation.VersionControl.Client_test.dll.sources 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/PendingChangeEventArgs.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/ProcessingChangeEventArgs.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/RecursionType.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Repository.cs
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/RepositoryProperties.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/SecurityChange.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/TeamProjectFolderOptions.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Test/VersionControlServerTest.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Test/WorkingFolderTest.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/VersionControlException.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/VersionControlLabel.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/VersionControlServer.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/VersionSpec.cs
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/WorkingFolder.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/WorkingFolderType.cs 
>>
>> >>
>> >> 
>> olive/class/Microsoft.TeamFoundation.VersionControl.Client/Workspace.cs
>> >> olive/README.tfs
>> >> olive/tools/Makefile
>> >> olive/tools/tfs/Makefile
>> >> olive/tools/tfs/tfs.cs
>> >> olive/tools/tfs/tfs.exe.sources
>> >> olive/tools/tfs/TODO
>> >> olive/tools/tfs/USAGE
>> >>
>> >> thanks,
>> >>
>> >> jr
>> >>
>> >>
>> >> Charlie Poole wrote:
>> >> > Hi Joel,
>> >> >
>> >> >> Charlie Poole wrote:
>> >> >>> Separate from the question of where this belongs and how it
>> >> >> relates to
>> >> >>> Mono, I'd love to have a way to access the Microsoft CodePlex
>> >> >>> repositories that doesn't involve use of TFS.
>> >> >> Good idea. I'll test my code against codeplex in addition to
>> >> >> my local TFS server.
>> >> >
>> >> > Let me know if I can help.
>> >> >
>> >> >>> Any thoughts of working on the Microsoft unit test APIs? There's a
>> >> >>> work in progress to allow NUnit to run those tests, but it
>> >> >> requires a
>> >> >>> copy of the Microsoft dlls to do it. Removing that
>> >> >> limitation would be
>> >> >>> quite powerful.
>> >> >> When I finish up what I need with the version control APIs,
>> >> >> I'd probably take a look at the issue tracking stuff next.
>> >> >> The unit test APIs would be interesting, but I prefer just
>> >> >> using Nunit :)
>> >> >
>> >> > I have no objections to that. :-)
>> >> >
>> >> > Charlie
>> >> >
>> >> >> jr
>> >> >>
>> >> >>
>> >> >>> Charlie
>> >> >>>
>> >> >>>> -----Original Message-----
>> >> >>>> From: mono-devel-list-bounces at lists.ximian.com
>> >> >>>> [mailto:mono-devel-list-bounces at lists.ximian.com] On
>> >> >> Behalf Of joel
>> >> >>>> reed
>> >> >>>> Sent: Saturday, December 16, 2006 7:09 PM
>> >> >>>> To: mono-devel
>> >> >>>> Subject: [Mono-dev] Microsoft.TeamFoundation APIs
>> >> >>>>
>> >> >>>> I've been working on implementing the Team Foundation
>> >> >> Server APIs and
>> >> >>>> currently have partial implementations of about 45 classes. I'm
>> >> >>>> currently working on the test suite and fixing bugs, comparing 
>> the
>> >> >>>> test suite output against my implementation and MS's. As
>> >> >> part of this
>> >> >>>> work, I also have a tfs.exe utility that can display all
>> >> >> the projects
>> >> >>>> in a repository and download all the files in any
>> >> >> particular project.
>> >> >>>> These are the namespaces I've been working on:
>> >> >>>>    Microsoft.TeamFoundation
>> >> >>>>    Microsoft.TeamFoundation.Common
>> >> >>>>    Microsoft.TeamFoundation.Client
>> >> >>>>    Microsoft.TeamFoundation.VersionControl.Client
>> >> >>>>
>> >> >>>> I've been working on this within the context of the mono
>> >> >> olive tree.
>> >> >>>> That is, I've added all my code to this tree locally, and
>> >> >> integrated
>> >> >>>> it into the build system.
>> >> >>>>
>> >> >>>> Is the olive project the right place for an implementation
>> >> >> of the the
>> >> >>>> Team Foundation Server APIs? Or the mono project? Or just
>> >> >> a separate
>> >> >>>> sourceforge project? Just looking for some guidance here.
>> >> >>>>
>> >> >>>> jr
>> >> >>>>
>>
>>
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>
>>
>>
>>
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: joel.reed.vcf
Type: text/x-vcard
Size: 405 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20061220/f2cfb5cd/attachment.vcf 


More information about the Mono-devel-list mailing list