TFS 2010, unable to check-in due to invalid character ($) in path


  • Hi,

    Hope someone can help me with this.

    I was trying to perform a baseless merge from command line, so that I can change my project branch hierarchy as follow:

    However, while doing so, I played around with tf merge commands, and tried convert another branch called "Dev-IoServer" (which branches out from "Dev" branch) to folder.

    Now, I am not able to perform check-in anymore, as there is a pending changes to the "Dev-IoServer" folder, as follow:

    And I am not able to undo the ghost pending changes with the following error msg:

    Anyway to resolve this?

    This is quite urgent. :(

    Thanks a lot.


    Monday, August 12, 2013 10:06 AM


All replies

  • Hi Wong,

    I don't know what you were trying to do but I get the feeling that somehow your workspace is not in a good state. I really don't know exact cause of this issue though. 

    Anyway, what i see in your case here is that you don't have much changes registered in your workspace. So if you like, you can take backup of your single changed file which is ... "$/ProductName/BuildProcessTemplates/DefaultTemplate.xaml". This is the only file that I see as changed file in your "Undo Pending Changes" dialog box as per above.

    Then create a new workspace pointing to a new location in your file system. Check out "$/ProductName/BuildProcessTemplates/DefaultTemplate.xaml" file and then restore from previously backed-up copy and then check-it-in. 

    Then you will have to delete old workspace all-together and it's mapped local path. 

    I hope this answers your question and if it does then please mark this reply as answer.

    Best Regards,
    Dharmesh Shah.
    Wanted to automatically generate release notes from TFS ... Why not look at  http://tfschangelog.codeplex.com

    Monday, August 12, 2013 4:41 PM
  • Hi Dharmesh,

    Unfortunately unable to solve it this way, as the same error complaining the invalid $ characters still pop up.

    However, I managed to resolve it another way. I will post the detail later when I settle the things on hand.

    Thanks for your suggestion.


    Tuesday, August 13, 2013 4:33 AM
  • Thanks Dharmesh for your kindly help, very useful.

    Hi Wong,

    You issue seems very strange, and I am sorry that I never encountered this issue before. In order to figure out what happened, I need to first reproduce it on my machine. So, please first convert the "Dev-IoServer" folder back to branch, then post the screenshot of its branch hierarchy here.

    Also, you can correct your issue by creating a new workspace just as Dharmesh described above.


    Vicky Song
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Tuesday, August 13, 2013 4:45 AM
  • Hi Dharmesh & Vicky,

    The same problem happens on all other TFS users, and I can't just ask everyone to delete their workspace and create a new one.

    What happen was, I tried to perform a baseless merge of 2 branches (Dev and Release), and I have an outdated branch (Dev-IoServer) which branched from Dev. So I did some trial and error with tf merge command on this Dev-IoServer branch. I cannot recall exactly what arguments I used for source and destination. I have tried many. :(

    After reading Dharmesh reply, I tried something rather dangerous, but it seems to work. What I did was I open the collection database directly in SQL server and check for locks on the affected folder. I deleted the affected records in tbl_Lock and tbl_PendingChange tables. After that, no more error message.


    To reproduce the problem, you may try to enter some unexpected value in either source or destination parameter for tf merge command. I remember passing some with $ in source or destination. I also tried to pipe and redirect to output to a text file, which did not work. And I can see them appear in tbl_Lock table with FullPath of some rows having $, | and > inside.

    The problem seems to be tf merge incorrectly accepted those invalid characters and processed them.

    I'm not sure whether I can mark my "dangerous" solution as answer. Please advice.

    Thanks for your help!!


    Tuesday, August 13, 2013 3:12 PM
  • Hi Wong,

    Thansk for your response.

    I did a test on my machine, and I have to say that, YES, it is possible to have "$" character in the tf merge command. If you found this issue highly impacts your daily work, you can consider submitting one feedback on the Microsoft Connect site here: https://connect.microsoft.com/

    Also, if you do not use the Dev-IoServer any more, you can destroy it with the tf destroy command to delete it permanently from TFS Version Control. See: http://msdn.microsoft.com/en-us/library/bb386005(v=vs.100).aspx


    Vicky Song
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • Marked as answer by kinhoon Monday, August 19, 2013 5:45 PM
    Thursday, August 15, 2013 9:35 AM
  • Hi Vicky,

    Thanks for your confirmation on the issue. I have reported it to Microsoft Connect as suggested. Hope this will be taken care of in the future.

    As for tf destroy, I remember I have tried that too but I failed to make it work. The reason might be I did not issue the command correctly.



    Saturday, August 17, 2013 4:13 PM
  • Hi Wong,

    Could you please also share me the connect link? I would like to help you to vote it.


    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    Monday, August 19, 2013 3:41 AM
  • Monday, August 19, 2013 5:46 PM