This project is read-only.
TfsGiggle is a search engine where source code content, changeset id/committer/comment and workitem id and title are indexed and searchable.

The engine in TfsGiggle is a Windows service. When the service starts it will subscribe to Tfs checkin events, and whenever a checkin happens TfsGiggle will be notified by Tfs about the checkin. The changeset-id specified in the checkin xml is put in a persisted queue and TfsGiggle will start iterating the files in the changeset adding files, changeset-info and any associated workitems to the index.

Users can search from Visual Studio 2010 (with the VSTS extension) on source code contents, changeset id/committer/committer, workitem id/title and modified (checkin) date. Path is also indexed, but may require more Lucene query syntax magic, because the team project collection guid are part of the document key (team project collection:path).

Installing TfsGiggle
TfsGiggle comes with a installer, so setup should be relatively easy :-)

TfsGiggle has two components, a Windows service and a Visual Studio 2010 plugin. Installing TfsGiggle will initially setup the service (further configuration is needed) and place the plugin in the TfsGiggle installation folder.

The configuration tool will enable you to tell TfsGiggle what Tfs you want it to connect to, and what account you want to use for the service. The service needs permission to write to the Tfs registry, setup the Checkin subscription and read the changesets/files and workitems it receives.

Please note that users could be presented for files/changesets/workitems they do not have access to, as the artifacts are opened by the users themselves, but indexed by the service account.

Using TfsGiggle with a VSTS Powershell console, e.g. Power Console
- Open a Power Console and write as shown below:

[Reflection.Assembly]::LoadFile(<absolute path to TfsGiggle.Search.dll>)
[TfsGiggle.Search.PowerShellClient]::Search("Something to search for")

If you can't find the TfsGiggle.Search.dll, I recommend using Everything Search from voidtools to find it. Awesome tool.

Adding an existing changeset to the index
The function AddChangeset has been added and is available in the PowerShellClient class. It takes a team project collection id which is a guid and a changeset id. Getting the team project collection id can be lengthy; fortunately for you it is shown in the image below how to do that and how to call the function.

AddChangesetWithPowershell.png
$tfs = [Microsoft.TeamFoundation.Client.TfsConfigurationServerFactory]::GetConfigurationServer("http://localhost:8080/tfs")
$collectionService = $tfs.GetService([Microsoft.TeamFoundation.Framework.Client.ITeamProjectCollectionService])
$collectionService.GetCollections()|%{ $_.Name + ":" + $_.Id }


Please see the FAQ for more information about TfsGiggle.

Componentdiagram

Last edited Jan 27, 2012 at 12:44 PM by GertGregers, version 25

Comments

idnshu Jan 23, 2013 at 2:30 AM 
i got this error when instaling...

[1668:27D8][2013-01-23T09:22:13]: Burn v3.6.2221.0, path: C:\Documents and Settings\v.shu.kurniawan\My Documents\Unduhan\TfsGiggle Setup.exe, cmdline: ''
[1668:27D8][2013-01-23T09:22:13]: Setting string variable 'WixBundleName' to value 'TfsGiggle Setup'
[1668:27D8][2013-01-23T09:22:13]: Setting string variable 'WixBundleLog' to value 'C:\DOCUME~1\VSHU~1.KUR\LOCALS~1\Temp\TfsGiggle_Setup_20130123092213.log'
[1668:271C][2013-01-23T09:22:13]: Error 0x80004005: Failed to load splash screen bitmap.
[1668:271C][2013-01-23T09:22:13]: Error 0x80004005: Failed to load splash screen.
[1668:27D8][2013-01-23T09:22:13]: Setting string variable 'WixBundleOriginalSource' to value 'C:\Documents and Settings\v.shu.kurniawan\My Documents\Unduhan\TfsGiggle Setup.exe'
[1668:27D8][2013-01-23T09:22:13]: Detect 1 packages
[1668:27D8][2013-01-23T09:22:13]: Detected package: TfsGiggleBootStrapper, state: Absent, cached: No
[1668:27D8][2013-01-23T09:22:13]: Condition 'WixBundleElevated' evaluates to false.
[1668:27D8][2013-01-23T09:22:13]: Error 0x81f40001: Bundle condition evaluated to false: WixBundleElevated
[1668:27D8][2013-01-23T09:22:13]: Detect complete, result: 0x0

luzer Mar 2, 2012 at 9:02 PM 
i get this error
PS> [TfsGiggle.Search.PowerShellClient]::Search("test")
Exception calling "Search" with "1" argument(s): "Object reference not set to an instance of an object."
At line:1 char:44
+ [TfsGiggle.Search.PowerShellClient]::Search <<<< ("test")
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

PS>