Checkin task not checking in everything

May 6, 2009 at 8:03 PM
I have been having problems with my build script checking in items. I'm using studio 08 w/ tfs 08. I have a folder for shared assemblies that different solutions reference. My script does a clean, get, build, checkout shared assemblies, copies built assemblies from the outdir to the shared assemblies folder, and checks in the assemblies. The script is building several solutions and as each solution is built, I checkout the assemblies from the shared assemblies folder, copy over, and checkin for the next solution to use. Everything runs through fine, and when I check the logs, I see this: "The following changes were not checked in because the items were not modified" for a few of the assemblies. This seems strange becuase all of the other assemblies, maybe 30 total, all get updated fine. I can queue up a build, let it run, and it'll update everything but those few assemblies. Right after that runs, making no changes in any solutions, it'll update everything but those few assemblies. There was another thread that the poster had similar issues, but it just started working for him.

Any help would be greatly appreciated.

Thanks,
James
Coordinator
May 6, 2009 at 8:32 PM
Hi James

As a quick test, can you copy the new assemblies to a different folder rather, then use a comparison tool (like Beyond Compare) to confirm that all files are updated as you expect. I'm not sure what diff check algorithm TFS is using, but perhaps the files are still identical in content so it skips them.

Mike
May 6, 2009 at 8:39 PM
Thanks Mike for the quick reply. I'll try doing that.

Also I wanted to add that I have specifically changed something in the solution that created the assemblies not getting updated and would get the same message. I just ran another build and looked at the shared assemblies folder comparing the timestamps, and they are all up to date with the build. So I can verify the files are up to date  when they get checked in.

James
May 13, 2009 at 5:06 PM

I can verify the files are different. I made a change to it, checked it in in TFS, and queued up a new build. After the build runs, I looked through the logs for where it does the gets. I can see the file that I changed with the correct changeset Id. When the build gets to the project inside the solution, there is a line that says

Output file "obj\Debug\Integration.Common.dll" does not exist

which is the dll that is not getting updated. To my previous comment about the files timestamps being uptodate, which is true, but only because it was a newly copied file. I am really stumped here, and really need some advice.

James