SingleFileISense

If you are having a problem using Vault, post a message here.

Moderator: SourceGear

Mordachai
Posts: 84
Joined: Sun Feb 24, 2013 11:58 am

SingleFileISense

Post by Mordachai » Thu Oct 06, 2016 1:50 pm

This is driving me slightly nuts.

Since upgrading to VS2015, I'm getting a new one of these every time I open one of our solutions:

"C:\Users\steve\AppData\Roaming\Microsoft\VisualStudio\14.0\SingleFileISense\_sfi_3c3a5d32-c54e-41bc-bed2-ed86b8e23115_.vcxproj"

the filename changes - I have a whole list of them.
The contents look like:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
	  <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
	    <ItemGroup Label="ProjectConfigurations">
	      <ProjectConfiguration Include="Debug|Win32">
	        <Configuration>Debug</Configuration>
	        <Platform>Win32</Platform>
	      </ProjectConfiguration>
	    </ItemGroup>
	    <PropertyGroup Label="Globals">
	      <ProjectName>Miscellaneous Files</ProjectName>
	      <ProjectGuid>{a7a2a36c-3c53-4ccb-b52e-425623e2dda5}</ProjectGuid>
	      <ISenseProject>true</ISenseProject>
	      <Keyword>SingleFileISense</Keyword>
	      <UseDefaultPropertyPageSchemas>false</UseDefaultPropertyPageSchemas>
	      <PropertyManagerSupported>false</PropertyManagerSupported>
	    </PropertyGroup>
	    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
	    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
	      <ConfigurationType>Application</ConfigurationType>
	      <UseDebugLibraries>true</UseDebugLibraries>
	      <PlatformToolset>v140</PlatformToolset>
	    </PropertyGroup>
	    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
	    <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
	      <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
	    </ImportGroup>
	    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
	    <ItemGroup>
	      <PropertyPageSchema Include="$(VCTargetsPath)$(LangID)\ProjectItemsSchema.xml" />
	      <PropertyPageSchema Include="$(VCTargetsPath)$(LangID)\isense_general.xml">
	        <Context>File;Project</Context>
	      </PropertyPageSchema>
	    </ItemGroup>
	  <ItemGroup>
	    <ClInclude Include="..\..\..\..\..\..\Vault\Cimex CAD-CAM\17.0\3rd Party\boost\boost\optional\optional.hpp" />
	  </ItemGroup>
	    <PropertyGroup>
	      <!-- Disable project retargeting -->
	      <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>
	    </PropertyGroup>
	  </Project>
Searching on Google doesn't seem to turn up anything useful - just a discussion of a similar issue with Perforce - where similar files were causing errors because it tries to add them to ones source control (as it does for me).

I have to "undo pending operations" everytime I open a solution - because it will add this stupid !@#$ thing (or a new one) every single time.
I'm clueless as to why - or what the hell this is trying to accomplish?

But these files are NOT appropriate to be adding to my solution - nor do they belong in Vault.

Help!

EDIT: the boost include appeared after I exited VS2015. So it seems to be creating this for the boost library.
so then the question is: HOW DO I STOP IT FROM ADDING THIS TO VAULT?!!!

Mordachai
Posts: 84
Joined: Sun Feb 24, 2013 11:58 am

Re: SingleFileISense

Post by Mordachai » Thu Oct 06, 2016 3:31 pm

This seems to be the same basic issue as described here:
http://support.sourcegear.com/viewtopic ... 980#p77980

And the solution for me was to delete those same files.

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Re: SingleFileISense

Post by Beth » Fri Oct 07, 2016 10:33 am

Do you have a vcxproj in Vault? Since that's your project file that says where all the other files are, that needs to be in source control.

I can't tell why you ended up with a project file in your temp directory, but the solution was the right first thing to do. If those files continue to be created, then we should look further into it.
Beth Kieler
SourceGear Technical Support

Mordachai
Posts: 84
Joined: Sun Feb 24, 2013 11:58 am

Re: SingleFileISense

Post by Mordachai » Mon Oct 10, 2016 12:49 pm

This is continuing to be a problem.

Yes - my projects are properly part of vault and have been for years.

Today, I have three more instances of this same problem appear:

(see attached image)

You can see that it forced the creation of a stupid folder "Miscellaneous Files" and three garbage projects for "single file intellisense"

I have no idea why. I'll look in those projects in a minute, when I close this VS2015 session, to see what they are referring to.

This is pretty damn annoying - could be VS2015's fault - I never had this idiot behavior in 2013. OTOH, why does vault try to include things that are absolutely outside of the solution? Surely this kind of junk should be rejected by Vault?!
Attachments
bug.png
bug.png (19.74 KiB) Viewed 12595 times

Mordachai
Posts: 84
Joined: Sun Feb 24, 2013 11:58 am

Re: SingleFileISense

Post by Mordachai » Mon Oct 10, 2016 12:55 pm

All but one of the projects looks identical to this:

_sfi_df38596a-4a14-4e9f-85be-394efb218c88_.vcxproj

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <PropertyGroup Label="Globals">
    <ProjectName>Miscellaneous Files</ProjectName>
    <ProjectGuid>{a7a2a36c-3c53-4ccb-b52e-425623e2dda5}</ProjectGuid>
    <ISenseProject>true</ISenseProject>
    <Keyword>SingleFileISense</Keyword>
    <UseDefaultPropertyPageSchemas>false</UseDefaultPropertyPageSchemas>
    <PropertyManagerSupported>false</PropertyManagerSupported>
    <SccProjectName>Miscellaneous Files</SccProjectName>
    <SccAuxPath>http://build-server/VaultService</SccAuxPath>
    <SccLocalPath>1~580c1751-cfcd-45bf-80af-6ded30f39b9f</SccLocalPath>
    <SccProvider>SourceGear Vault Visual Studio 2005 Client:{1EA47954-8515-402d-82D9-B5C332120A8D}</SccProvider>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <PlatformToolset>v140</PlatformToolset>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ItemGroup>
    <PropertyPageSchema Include="$(VCTargetsPath)$(LangID)\ProjectItemsSchema.xml" />
    <PropertyPageSchema Include="$(VCTargetsPath)$(LangID)\isense_general.xml">
      <Context>File;Project</Context>
    </PropertyPageSchema>
  </ItemGroup>
  <PropertyGroup>
    <!-- Disable project retargeting -->
    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>
  </PropertyGroup>
</Project>
And one looks like this:
_sfi_3c3a5d32-c54e-41bc-bed2-ed86b8e23115_.vcxproj

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <PropertyGroup Label="Globals">
    <ProjectName>Miscellaneous Files</ProjectName>
    <ProjectGuid>{a7a2a36c-3c53-4ccb-b52e-425623e2dda5}</ProjectGuid>
    <ISenseProject>true</ISenseProject>
    <Keyword>SingleFileISense</Keyword>
    <UseDefaultPropertyPageSchemas>false</UseDefaultPropertyPageSchemas>
    <PropertyManagerSupported>false</PropertyManagerSupported>
    <SccProjectName>
    </SccProjectName>
    <SccAuxPath>
    </SccAuxPath>
    <SccLocalPath>
    </SccLocalPath>
    <SccProvider>
    </SccProvider>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <PlatformToolset>v140</PlatformToolset>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ItemGroup>
    <PropertyPageSchema Include="$(VCTargetsPath)$(LangID)\ProjectItemsSchema.xml" />
    <PropertyPageSchema Include="$(VCTargetsPath)$(LangID)\isense_general.xml">
      <Context>File;Project</Context>
    </PropertyPageSchema>
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="..\..\..\..\..\..\Vault\Cimex CAD-CAM\17.0\3rd Party\boost\boost\optional\optional.hpp" />
  </ItemGroup>
  <PropertyGroup>
    <!-- Disable project retargeting -->
    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>
  </PropertyGroup>
</Project>

Mordachai
Posts: 84
Joined: Sun Feb 24, 2013 11:58 am

Re: SingleFileISense

Post by Mordachai » Mon Oct 10, 2016 1:02 pm

It appears to be basically a feature of VS2015 - but there is a severe interaction between it and your product that is making a mess:

https://blogs.msdn.microsoft.com/vcblog ... in-vs2015/

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Re: SingleFileISense

Post by Beth » Mon Oct 10, 2016 2:02 pm

Is your solution file bound?

It looks like you are using the Vault Enhanced Client. With that client the solution file must be included and bound.

Do you have a .vcxproj in Vault as part of the overall solution and on your hard drive, but not the ones that are from the temp area?

Did you by any chance change from the Vault Classic Client to the Vault Enhanced Client at the same time as upgrading to VS 2015?

Do you ever receive any errors that say "there was a problem reading metadata?"

Do the files appear right after performing some type of build?
Beth Kieler
SourceGear Technical Support

Mordachai
Posts: 84
Joined: Sun Feb 24, 2013 11:58 am

Re: SingleFileISense

Post by Mordachai » Tue Oct 11, 2016 7:43 am

Is your solution file bound?
Yes. The solutions and all .vcxproj files are bound. (see attachment image as an example - but they all look like that - every single one is properly bound that I can find)
It looks like you are using the Vault Enhanced Client. With that client the solution file must be included and bound.
It is shown as "valid" and has the correct binding according to "Change Vault Bindings" - see attachment.
Do you have a .vcxproj in Vault as part of the overall solution and on your hard drive, but not the ones that are from the temp area?
The temp ones are created on the fly. They are on my hard drive. They are NOT in vault.
I have deleted them.
Removed them from the pending changes viz the enhanced vault client
I have deleted the vault cache files that referenced them.
I have used the vault web client to see if they appear as pending there (after deleting the cache files) - they did not appear there at all at that point.
Did you by any chance change from the Vault Classic Client to the Vault Enhanced Client at the same time as upgrading to VS 2015?
Nope. I had been using the enhanced client with 2013. I did recently upgrade from Vault 7 to Vault 9 - and we branched 17.0 from 16.1 shortly after that. I initially loaded 17.0 branch in VS2013 using Vault 9 to make sure that everything was bound correctly and compiled properly before switching to VS2015.
I had not experienced this issue until after switching to 2015 - I do no believe that 2013 has the concept of "Single file ISense".
Do you ever receive any errors that say "there was a problem reading metadata?"
Not that I recall, no.
Early on when this issue first appeared I was forced to choose where I wanted to put miscellaneous files (inside of a project, or inside of the solution). But that dialog had NO CANCEL option. It was clearly there to choose what I wanted to do with the temporary .vcxproj file (there was only one at that time) - and I was pretty pissed that this thing appeared out of nowhere and I had no ability to say "NO!!!!" - only the ability to say "put it here or there." I chose to put it someplace - and then immediately removed the changes from the pending list in vault enhanced client.
Do the files appear right after performing some type of build?
no.
Attachments
solution bindings.png
solution bindings.png (124.77 KiB) Viewed 12577 times

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Re: SingleFileISense

Post by Beth » Tue Oct 11, 2016 8:04 am

I agree it is very strange that a file from a temp directory would be pended. Visual Studio is what sends us the command to add something, but generally a proj file would only be added if it was being saved in the .sln file.

Open the .sln file. Do you see any entries for project files that don't belong?

Would you be adverse to trying the Vault Classic Client? That hits a different Visual Studio interface and might not have the same issue. I have instructions under post IV here: http://support.sourcegear.com/viewtopic ... 375#p68375.

For a useful future reference, all the binding instructions are posted here: http://support.sourcegear.com/viewtopic ... 13&t=18956.
Beth Kieler
SourceGear Technical Support

Mordachai
Posts: 84
Joined: Sun Feb 24, 2013 11:58 am

Re: SingleFileISense

Post by Mordachai » Tue Oct 11, 2016 2:50 pm

I used a file search of all .sln and .vcxproj files for all references to other .vcxproj files - and none of them were out of the ordinary - just correct references.

also - none of my .sln or .vcxproj files are checked out. so it's not like Vault even recognizes that these changes are going to affect the existing project / solutions.

I am currently trying completely deleting my project folders and then deleting all cache files and now doing a get latest into a blank new file tree (rebuilding the local file tree from vault).

So this eliminates ALL cache files from VS2015, as well (I assume) from Vault (since I used the option to reset all cache files from within the vault client).

I've deleted the _sfi_ files from the Microsoft temp folder.

I switched to standard client instead of enhanced.

... not sure what else I can possibly do?!

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Re: SingleFileISense

Post by Beth » Tue Oct 11, 2016 3:34 pm

There's nothing else I can think of at the moment. Is it trying the same thing with the Classic Client?
Beth Kieler
SourceGear Technical Support

Mordachai
Posts: 84
Joined: Sun Feb 24, 2013 11:58 am

Re: SingleFileISense

Post by Mordachai » Wed Oct 12, 2016 9:20 am

So far so good.

These files keep appearing as part of ISense related to boost - and I also updated boost recently - and in order to do that we do keep a copy in Vault - and I suspect that Vault got very confused with all of the new folders and files and changes needed to go from 1.57 to 1.62.

I'm *hoping* that having blown away my entire local tree & gotten it from vault again that this destroyed all of the _skbak (or whatever they're called) folders & contents - and maybe those were causing the problem?

I *did* revert to using the standard client - so that could be part of the issue. We'll see.

Mordachai
Posts: 84
Joined: Sun Feb 24, 2013 11:58 am

Re: SingleFileISense

Post by Mordachai » Mon Oct 17, 2016 8:39 am

Okay - back again - today - 10:34AM Monday, 10-17-2016.

attached is the dialog I first got back when this first happened. It just appeared again today when I hit the VA button for Alt+O (I was looking at a header file, and I wanted to check for / edit the associated cpp file).

Now that this stupid dialog appears - you can see I have absolutely no control over the situation. I can choose where to put a file I DO NOT WANT, but I cannot choose to abort / cancel.

In this case, I am not looking at a 3rd party library - but our own - which is fully part of vault and in a solution that is part of vault and has been for years.

So - from my perspective - the only new variables are:

1. VS2015 (we were using 2013)
2. Vault 9.01 (we were using 7)

Ideas?

EDIT: This is looking like it is related to a similar bug I reported where VA refactor "insert header" was grabbing a header from the wrong folder - from VS2013 when I tried to use this refactoring on a project in VS2015.

I answered that dialog with the default, and now I am looking at *a* .cpp file which has the same name as the header I was looking at (Overlapped.h/Overlapped.cpp) - but my .h is in
C:\Users\steve\Vault\Cimex CAD-CAM\17.0\MFC Toolbox\Overlapped.h
Alt-O gives me that stupid dialog and then:
C:\Users\steve\Vault\Cimex CAD-CAM\15.1\MFC Toolbox\Overlapped.cpp

THERE ARE NO REFERENCES ANYWHERE TO OLD PROJECTS - old branches of our project tree. 15.1 would be - 3 years ago.

Can you think of any reason that VA is picking up and forcing files that are on my filesystem, but are not referenced by anything?

Or can you think of where I can go looking for a such a magical reference? Who might be concealing such a thing?
Attachments
start of bug.png
start of bug.png (4.56 KiB) Viewed 12552 times

Mordachai
Posts: 84
Joined: Sun Feb 24, 2013 11:58 am

Re: SingleFileISense

Post by Mordachai » Mon Oct 17, 2016 8:52 am

More hints - I previously saw another user posting similar problems as I'm having - and they were instructed to clear their caches and seemed to be resolved.

Their issue was very similar - but had this oddity where these "rogue" files were being added to their project from other - wrong project sources - and then when they clicked to close the document, they were getting the attached dialog.

I wasn't getting this...

Until now.

WTH? Now by closing a local document VA/VS2015 are colluding to DELETE my file from source control (from an unrelated project)?!

More generally - I've been meaning to complain about the "remove/delete" behavior in Vault. I get a dialog in VS2015/2013/... Which asks - remove or delete. But both do the same thing - delete from Vault AND delete from my filesystem.

That's wrong.
Attachments
bug stage 3.png
bug stage 3.png (5.54 KiB) Viewed 12551 times

Mordachai
Posts: 84
Joined: Sun Feb 24, 2013 11:58 am

Re: SingleFileISense

Post by Mordachai » Mon Oct 17, 2016 8:57 am

...and more:

So, I told it not to do whatever it asked before (unclear what it was asking - since this is all a train wreck in slow-mo)...

And then I selected the rogue/bogus temp project file from the pending changes - and attempted to delete it.

This gave me the attached dialog screenshot (I included all of it so you can see the pending change highlighted that I tried to delete).
Attachments
bug stage 4.png
bug stage 4.png (225.1 KiB) Viewed 12551 times

Post Reply