This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Deleted file still exist in CCS GUI when project files are updated from source control

Other Parts Discussed in Thread: CCSTUDIO, SYSBIOS

Hi,

We have been using CCS5.x and CCS6.x for developing our software for OMAP3 and C66x DSPs.  

We check-in project files (usually .ccsproject, .cproject, .project) in workspace to our common repository.

When files are deleted from a project and the updated project files are checked in, then when other members updates their files from repository, those deleted files are still visible in CCS GUI, even though the project files don't include them.  This doesn't happen always, but happens quite often.

If this happens, closing & reopening the project in CCS doesn't help.  "Refreshing" the project doesn't work either.

The only way we found to correctly update the project is, deleting the project from worksapce, then re-importing the project.  This workaround is OK, but one of our major annoyance.

Is there any trick to avoid this, or easier way to workaround this?

Thanks,
tamo2

  • Tamo - Quick check: when other members update their files from the repository are you sure that the deleted files are actually removed from their file system?
  • Hi Toby,

    Thanks for replying.

    I don't know if it is always the case, but yes, in most case, the files linked from the project are deleted from their file system too (that is usually why Jenkins build fails for not being able to find the referenced source files).

  • Good question by Toby, I was thinking the same thing.

    Do the files appear as broken links in the project explorer view (with an exclamation mark over it)?

    Also, when the project meta files checked in, is the project still open inside an active workspace of a running CCS instance?

    Thanks
    ki
  • Hi, 

    I created a ZIP file to reproduce the problem.  

    Here are the steps:

    1. Start CCS 6.2.x, use workspace_test.
    2. Import --> CCS projects, select TestProgram.
    3. Notice that the project has two C source files, main.c and test.c.
    4. (Optional) you could build the project.
    5. Terminate CCS.

    Here is the step to mimic updates from source control.
    6. Copy .project file from workspace_test_copy\TestProgram to workspace_test\TestProgram, overriding the existing one.
    NOTE that the updated .project doesn't have a link to test.c.

    7. Re-start CCS, use the same workspace_test.
    8. Notice that TestProgam still shows "test.c" but with a "!" mark.
    9. (Optional) You try building the project and it fails because "no rule to make target test.c".

    A few observations:

    • Interestingly if you do step#6 while CCS is still open, then CCS correctly recognized that test.c got deleted.
    • It doesn't matter if "test.c" is deleted from file system or not.
    • This happens both in CCS 6.2.0.00050 and CCS 5.4.x.

    Thanks,
    tamo2
    workspace_test.zip

  • Tamo- - what compiler are you using? I tried importing this project but CCS refused because it detected I don't have the related compiler installed (I only have some installed at the moment) but it did not tell me which one it needed.
    Ta, T

    EDIT: Checking with my own projects (C2000 and MSP430), none of the project files (.project, .cproject, .ccsproject) have any changes when I add or remove files from the project. this may be due to a difference in setup though - I think the projects i have set specific directories as containing source files and so all source files within are then used without being specifically referenced individually as you seem to imply that yours are.

    It's odd that the files would be referenced specifically (unless this is some peculiarity of the type of CCS project that you are using). Have the oproject settings been altered to cause this?

  • Toby Mole said:
    It's odd that the files would be referenced specifically (unless this is some peculiarity of the type of CCS project that you are using). Have the oproject settings been altered to cause this?

    I noticed that too.  If the files are no "linked", then it works as expected.

    I don't think it is "odd" having links from the project.  We explicitly "link" the source files from projects (which is one of the standard options when you add files).  We develop for cross-platform, so the source files are in their own tree, not under CCS's workspace. 

    The project I created is setup for c6657.  Below is the list of installed components.

    Analysis Suite 4.1.0.201609091143 com.ti.dvt2.analysis.suite.feature.group Texas Instruments
    Automotive Processor Device Support 1.0.1 com.ti.ccstudio.automotive.devicesupport.feature.group Texas Instruments
    BeagleBone FTDI Drivers 2.8.30.20140130 com.ti.ftdi.drivers.win.feature.group Texas Instruments
    C/C++ Development Tools 8.8.0.201509131935 org.eclipse.cdt.feature.group Eclipse CDT
    C/C++ GCC Cross Compiler Support 8.8.0.201509131935 org.eclipse.cdt.build.crossgcc.feature.group Eclipse CDT
    C/C++ Memory View Enhancements 8.8.0.201509131935 org.eclipse.cdt.debug.ui.memory.feature.group Eclipse CDT
    C/C++ Remote Launch (Requires RSE Remote System Explorer) 8.8.0.201509131935 org.eclipse.cdt.launch.remote.feature.group Eclipse CDT
    C6000 7.4.0 Help Feature 7.4.0.201303051055 com.ti.cgt.c6000.7.4.help.feature.group Texas Instruments
    C6000 Device Support 1.1.2 com.ti.ccstudio.c6000.devicesupport.win32.feature.group Texas Instruments
    C6000 Multicore Device Support 1.0.5 com.ti.ccstudio.c6000mc.devicesupport.win32.feature.group Texas Instruments
    C6000 v7 Compiler Tools 7.4.18 com.ti.cgt.c6000.7.4.win32.feature.group Texas Instruments
    C6000 v8 Compiler Tools 8.1.1 com.ti.cgt.c6000.8.1.win32.feature.group Texas Instruments
    CCS and SAT Common Components Feature 6.2.0.201609121600 com.ti.tools.common.feature.group Texas Instruments
    CCS Documentation 6.2.0.20160831 com.ti.ccstudio.doc.win32.feature.group Texas Instruments
    CCS Launcher 6.2.0.20160106 com.ti.ccstudio.launcher.win32.feature.group Texas Instruments
    CCS Utilities 1.0.0.20160210 com.ti.ccstudio.utils.cli.win32.feature.group Texas Instruments
    CCStudio p2 Tool Feature 6.0.0.201508191607 com.ti.ccstudio.p2tool.feature.group Texas Instruments
    Chromium Browser Feature 6.2.0.201609121600 com.ti.chromium.browser.feature.group Texas Instruments
    Code Composer Studio Base Components 6.2.1.01781 com.ti.ccstudio.base.feature.group Texas Instruments
    Code Composer Studio IDE ARM Components 6.2.0.201609121600 com.ti.ccstudio.tms470.feature.group Texas Instruments
    Code Composer Studio IDE C5500 Components 6.2.0.201609121600 com.ti.ccstudio.c5500.feature.group Texas Instruments
    Code Composer Studio IDE C6000 Components 6.2.0.201609121600 com.ti.ccstudio.c6000.feature.group Texas Instruments
    Code Composer Studio IDE C7000 Components 6.2.0.201609121600 com.ti.ccstudio.c7000.feature.group Texas Instruments
    Code Composer Studio IDE Main Feature 6.2.0.201609121600 com.ti.ccstudio.idemain.feature.group Texas Instruments
    Code Composer Studio IDE Workflow 6.2.0.201609121600 com.ti.ccstudio.workflow.feature.group Texas Instruments
    Compiler Tools On-line Documentation 1.1.4 com.ti.cgt.dmed.win32.feature.group Texas Instruments
    DaVinci Device Support 1.1.3 com.ti.ccstudio.davinci.devicesupport.win32.feature.group Texas Instruments
    Debug Server 6.2.1.1781 com.ti.ccstudio.debugserver.win32.feature.group Texas Instruments
    Debug Server Flash 6.2.1.1781 com.ti.dsflash.win32.feature.group Texas Instruments
    DSP/BIOS (IDE Client) 5.42.1.09 com.ti.rtsc.DSPBIOS.product.ui.feature.group Texas Instruments
    DSP/BIOS (Target Content) 5.42.1.09 com.ti.rtsc.DSPBIOS.product_5.42.1.09.feature.group Texas Instruments
    DVT - Graph Visualization 4.1.0.201609091143 com.ti.dvt2.graph.visualization.feature.group Texas Instruments
    DVT - Profiler Analysis Manager 4.1.0.201609091143 com.ti.dvt2.profileanalysismanager.feature.group Texas Instruments
    DVT - Resource Explorer 4.1.0.201609091143 com.ti.dvt2.resource.explorer.feature.group Texas Instruments
    DVT - System Analyzer 4.1.0.201609091143 com.ti.dvt2.uia.feature.group Texas Instruments
    DVT - Trace Control 4.1.0.201609091143 com.ti.dvt2.trace.control.feature.group Texas Instruments
    Eclipse Git Team Provider 4.0.3.201509231615-r org.eclipse.egit.feature.group Eclipse EGit
    Eclipse Help System 2.1.1.v20150904-0015 org.eclipse.help.feature.group Eclipse.org
    Eclipse Platform 4.5.1.M20150904-0015 org.eclipse.platform.ide Eclipse.org
    Equinox p2, Discovery UI support 1.0.300.v20150430-1836 org.eclipse.equinox.p2.discovery.feature.feature.group Eclipse.org - Equinox
    Equinox p2, Provisioning for IDEs. 2.2.101.v20150826-1318 org.eclipse.equinox.p2.user.ui.feature.group Eclipse.org - Equinox
    GCC ARM Compiler Tools 4.9.3.2015q3_20150921 com.ti.gcc.arm.win32.feature.group Texas Instruments
    Grace (MSP430) (IDE Client) 2.10.0.78 com.ti.sdo.grace.product.ui.feature.group Texas Instruments Inc.
    Grace (MSP430) (Target Content) 2.10.0.78 com.ti.sdo.grace.product_2.10.0.78.feature.group Texas Instruments Inc.
    Graphical Editing Framework GEF 3.10.1.201508170204 org.eclipse.gef.feature.group Eclipse GEF
    Graphical Modeling Framework (GMF) Runtime 1.7.0.201306111432 org.eclipse.gmf.feature.group Eclipse Modeling Project
    GUI Composer Backplane Feature 6.1.0.201609121600 com.ti.gc.backplane.feature.group Texas Instruments
    GUI Composer Program Model Feature 6.1.0.201609121600 com.ti.gc.pm.feature.group Texas Instruments
    IDE - Debug Server Integration Feature 6.0.1.201609121600 com.ti.debug.server.feature.group Texas Instruments
    Image Analyzer 4.1.0.201609091143 com.ti.dvt2.via.ccs.feature.group Texas Instruments
    IPC (Multicore and I/O) (IDE Client) 1.25.3.15 com.ti.rtsc.IPC.product.ui.feature.group Texas Instruments
    IPC (Multicore and I/O) (Target Content) 1.25.3.15 com.ti.rtsc.IPC.product_1.25.3.15.feature.group Texas Instruments
    IPC (Multicore and I/O) (Target Content) 1.24.3.32 com.ti.rtsc.IPC.product_1.24.3.32.feature.group Texas Instruments
    Keystone1 1.0.12.0 com.ti.emulation.keystone1.win32.feature.group Texas Instruments
    Keystone2 1.1.7.0 com.ti.emulation.keystone2.win32.feature.group Texas Instruments
    LWInstaller 6.2.0.00050 com.ti.ccstudio.installer.win32.feature.group Texas Instruments
    Marketplace Client 1.4.1.v20150916-1928 org.eclipse.epp.mpc.feature.group Eclipse Marketplace Client
    MCSDK TMDXEVM6657 PDK 1.1.2.5 com.ti.biosmcsdk.pdk.C6657.feature.group Texas Instruments Incorporated
    MCSDK TMDXEVM6657 PDK P2 Tracker 1.1.2.5 com.ti.biosmcsdk.pdk.C6657.p2.feature.group Texas Instruments Incorporated
    OMAP Device Support 1.0.9 com.ti.ccstudio.omap.devicesupport.win32.feature.group Texas Instruments
    OMAPL/Integra Device Support 1.0.9 com.ti.ccstudio.integra.devicesupport.win32.feature.group Texas Instruments
    p2appf 6.0.0.201609121600 com.ti.ccstudio.p2appf.feature.group Texas Instruments
    Remote System Explorer End-User Runtime 3.7.0.201505221634 org.eclipse.rse.feature.group Eclipse TM Project
    ROV 4.1.0.201609091143 com.ti.dvt2.rov.feature.group Texas Instruments
    RTSC/XDCtools (IDE Client) 3.32.1.22 org.eclipse.rtsc.xdctools.product.ui.feature.group Texas Instruments
    RTSC/XDCtools (Target Runtime Support) 3.32.1.22 org.eclipse.rtsc.xdctools.product_3.32.1.22.feature.group Texas Instruments
    RTSC/XDCtools (Target Runtime Support) 3.30.3.47 org.eclipse.rtsc.xdctools.product_3.30.3.47.feature.group Texas Instruments
    RTSC/XDCtools (Target Runtime Support) 3.30.1.25 org.eclipse.rtsc.xdctools.product_3.30.1.25.feature.group Texas Instruments
    RTSC/XDCtools (Target Runtime Support) 3.25.0.48 org.eclipse.rtsc.xdctools.product_3.25.0.48.feature.group Texas Instruments
    RXTX End-User Runtime 2.1.8.0_201606281300 gnu.io.rxtx.feature.group RXTX.org
    Shared Device Support 1.0.9 com.ti.ccstudio.shared.devicesupport.win32.feature.group Texas Instruments
    Sitara Device Support 1.3.2 com.ti.ccstudio.sitara.devicesupport.win32.feature.group Texas Instruments
    SYS/BIOS (IDE Client) 6.40.2.27 com.ti.rtsc.SYSBIOS.product.ui.feature.group Texas Instruments
    SYS/BIOS (Target Content) 6.40.2.27 com.ti.rtsc.SYSBIOS.product_6.40.2.27.feature.group Texas Instruments
    SYS/BIOS (Target Content) 6.35.1.29 com.ti.rtsc.SYSBIOS.product_6.35.1.29.feature.group Texas Instruments
    SYS/BIOS MCSDK 2.1.2.5 com.ti.biosmcsdk.mcsdk.feature.group Texas Instruments Incorporated
    SYS/BIOS MCSDK P2 Tracker 2.1.2.5 com.ti.biosmcsdk.feature.group Texas Instruments Incorporated
    System Analyzer (UIA Target) (IDE Client) 1.3.0.02 com.ti.uia.product.ui.feature.group Texas Instruments
    System Analyzer (UIA Target) (Target Content) 1.3.0.02 com.ti.uia.product_1.3.0.02.feature.group Texas Instruments
    TargetDB Default Props 6.0.0.20131206 com.ti.ccstudio.targetdb.props.default.win32.feature.group Texas Instruments
    TI Emulators 6.0.407.3 com.ti.emulation.pack.win32.feature.group Texas Instruments
    TI Target Content 1.0.0.201608011655 com.ti.targetcontent.feature.group Texas Instruments
    TI-RTOS for C6000 (IDE Client) 2.0.1.23 com.ti.rtsc.TIRTOSc6000.product.ui.feature.group Texas Instruments
    TI-RTOS for C6000 (Target Content) 2.0.1.23 com.ti.rtsc.TIRTOSc6000.product_2.0.1.23.feature.group Texas Instruments
    TIREX Desktop 2.0.2.131 com.ti.tirex.feature.group Texas Instruments
    TM Terminal 4.0.0.201506040610 org.eclipse.tm.terminal.feature.feature.group Eclipse.org - Target Management
    Trace Analyzer 4.1.0.201609091143 com.ti.dvt2.trace.ccs.feature.group Texas Instruments
    XDAIS (IDE Client) 7.21.1.07 com.ti.rtsc.XDAIS.product.ui.feature.group Texas Instruments Inc.
    XDAIS (Target Content) 7.21.1.07 com.ti.rtsc.XDAIS.product_7.21.01.07.feature.group Texas Instruments Inc.
    Xulrunner 24.0.0 com.ti.ccstudio.xulrunner.win32.feature.group Texas Instruments

  • Tamo-
    Wow, that's a lot of stuff! I'm afraid I'm not going to install all that as my install is my own working one, so there may be some variability in results.

    However I have taken one of my own small projects (an MSP430 project) and linked a test file in. This added the following to the related .project file under the linked resources node and which gets added to source control:

    <link>
    <name>test.c</name>
    <type>1</type>
    <locationURI>PROJECT_LOC/path/test.c</locationURI>
    </link>

    Upon removing this test file from my file system the link in the CCS project explorer now has an icon overlay of a small yellow box with an exclamation mark, the item above remains in the .cproject file.

    I can remove this by selecting the file in the explorer and pressing delete. when I do this the .cproject file has the link item removed (because it was _specifically_ added it needs to be _specifically_ removed). Then I can update .cproject on the remote server. If the test file is correctly removed from the source control index for the remote server and the .cproject is updated correctly on the remote server, as mentioned, then I see no problem. Pulling the changes back to another local machine the .cproject no longer references the test file, the test file no longer exists and the CCS project explorer view no longer shows the test file.

    TBH I cant see how the explorer would continue to show a file once the link is correctly removed from the .project... I guess you could test your particular situation by first making sure the local repository is clean and up to date, then linking a test file and viewing a diff to see if there are changes anywhere unexpected that may linger on outside of the .cproject... but I'm guessing you may have already tried that? :\

    T
  • Hi Toby,

    I think you are missing an important step in your procedure.  The key is, CCS should not be running when the .project file changes.

    Toby Mole said:
    Upon removing this test file from my file system the link in the CCS project explorer now has an icon overlay of a small yellow box with an exclamation mark, the item above remains in the .cproject file.

    What you need to do is:

    1. Start CCS.
    2. Save the .project file before deleting test.c using File Explorer.
    3. Delete test.c, then make a copy of .project file.
    4. Revert .project by copying the .project file saved in step 2 back to the active .project under workspace.
    5. Terminate CCS.
    6. Copy the .project file saved in step 3 (which doesn't have link to test.c) over to the active .project under workspace.
    7. Start CCS -- now the test.c is still in the project with "!" mark.

    The key is Step 6 -- which mimics the update from Source Control while CCS is not running.

  • Tamo,

    OK I can reproduce this.

    I used a test project that is in source control.
    - Linked a test file and closed CCS
    - I performed a diff to see the change in .project which is as previously mentioned.
    - I reset the changes from the source control (i.e. git checkout -- ./.cproject), removing the added information from the .project file and made sure the test file was deleted.
    - I reopened CCS.

    The test file is still shown within the project explorer view, with a exclamation mark file icon overlay.
    Looking in the project's linked resources settings I see that the file is marked with an error - as having an invalid path.

    I can easily remove this file from the project y selecting the file in the project explorer view and pressing the delete key (or right-click -> delete). Why the file initially remains there when it obviously should not I do not know. As far as I can tell the project files do not show any change, even those not under source control.

    However, upon deleting the test file I do notice that other files within the workspace are modified (my project files are not located in the workspace). As far as I can tell the modifications occur within the \workspace\.metadata\.plugins\org.eclipse.core.resources\ directory unfortunately I have not been able to determine if any changes here are relevant. Ki may be able to provide further information on this.

    T
  • Hi Toby,

    Thanks for reproducing the issue.

    Toby Mole said:
    I can easily remove this file from the project y selecting the file in the project explorer view and pressing the delete key (or right-click -> delete).

    I should have told that deleting file worked too.  

    But for us, it is very important to make it work automatically.  We use Jenkins to build software for multiple platforms for multiple branches.  As it is now, whenever somebody deleted a file from a project, the build is broken because of this issue.

  • Tamo - thank you for the excellent test case. I can reproduce this also. The workspace must cache the project information and is unaware of changes made to the project outside the workspace environment. Running CCS with the -clean option to clear some of the eclipse cache does not seem to help. I need to remove the project from the workspace and reimport it again for CCS to pick up the changes. I will file a bug for this.

    Thanks
    ki
  • The tracking ID for the bug is: CCSIDE-2964

    Thanks
    ki
  • Hi Tamo

    Out of curiosity, how does what CCS see affect your Jenkins builds?

    Doesn't your Jenkins build just run on the files that are actually under source control? (i.e. if a file is removed then it is removed from the repository and the .cproject file... how does Jenkins still see it?)

    T

  • There is nothing special about building from Jenkins.  It is pretty much the same as building in CCS GUI -- it just fails.  

    Here is a sample output from Jenkins:

    cs-make: *** No rule to make target `hist.o', needed by `libslLIB.a'.  Stop.

    This was when a file (hist.cpp) was removed from a project.

    I am surprised that this issue has not been widely reported by CCS or Eclipse community.  If you use any automatic build system with any version control system, you will definitely encounter this issue.