Indigo Rose Software
  #1  
Old 11-16-2006
AdrianS AdrianS is offline
Forum Member
 
Join Date: Apr 2005
Location: Ottawa, CA
Posts: 27
File refuses to patch

I've run into a problem with a patch that doesn't yet make sense to me and I wonder if anybody else has seen it.

Here's the scenario:
The patch handles three versions of our software and affects 12 files. Of the 12, 11 are different in all three versions. One of the files changed from the first version to the second, but not from the second to the third.

The patch runs successfully when patching from version 1 to version 3, but it fails on the unchanged file when patching from 2 to 3, claiming that the target file doesn't exist. The failure is detected by a g_OnFileProcessed call with a ResultCode of 4.

The 2 to 3 patch starts alright, so it does identify the version correctly. The MD5 hashs for the source files and the target file all match. The build log for the patch showes two diff files for the 11 that change in both and one diff file for the file that only changes in 1 to 2.

Before I spent too much time digging into this, does anybody have any ideas what could be causing VP to think the one file doesn't exist when it does?
  #2  
Old 11-16-2006
AdrianS AdrianS is offline
Forum Member
 
Join Date: Apr 2005
Location: Ottawa, CA
Posts: 27
As a further test, I modified my g_OnFileProcessed function to display the MD5 of the offending file when the failure occurs. The displayed MD5 matches the source MD5.
  #3  
Old 11-16-2006
AdrianS AdrianS is offline
Forum Member
 
Join Date: Apr 2005
Location: Ottawa, CA
Posts: 27
I think that I now see where the problem is. While the ResultCode of 4 is defined as "The file was skipped because a matching target file could not be found on the system.", it seems that it also means that the file was skipped because there were no differences.

What got me confused was the fact that same file has been in our patches over about 15 versions without causing a problem. However, the file had never changed so it wasn't actually included in the patch. Now that it's in the patch, VP reports that it's been skipped.

This leads to a different question: How does one detect that the file patch really has failed?

We introduced this check into our patches because some of our users were modifying our DLLs to localize them. The patch would ignore those changed files, but would apparently succeed overall. The result was that some of the DLLs were at one version and others at another version. You can guess what kind of tech support issues that created.
  #4  
Old 11-16-2006
Lorne's Avatar
Lorne Lorne is offline
Indigo Rose Staff Member
 
Join Date: Feb 2001
Location: Indigo Rose Software
Posts: 2,588
Quote:
Originally Posted by AdrianS View Post
I think that I now see where the problem is. While the ResultCode of 4 is defined as "The file was skipped because a matching target file could not be found on the system.", it seems that it also means that the file was skipped because there were no differences.
Thanks, I've logged this for investigation. REF: 14170

Quote:
How does one detect that the file patch really has failed?
If you mean from another program, you could check the process return code from the patch.

If you mean from within the patch...I'm not sure. I've logged that for investigation as well. REF: 14171

Quote:
We introduced this check into our patches because some of our users were modifying our DLLs to localize them. The patch would ignore those changed files, but would apparently succeed overall. The result was that some of the DLLs were at one version and others at another version. You can guess what kind of tech support issues that created.
Yeah, no kidding. Did you try turning on "Force install" for those DLLs? (Maybe with a script condition that checks the version of the DLL to see if it's current...)
__________________
--[[ Indigo Rose Software Developer ]]
  #5  
Old 11-16-2006
AdrianS AdrianS is offline
Forum Member
 
Join Date: Apr 2005
Location: Ottawa, CA
Posts: 27
Quote:
Originally Posted by Lorne View Post
If you mean from within the patch...I'm not sure. I've logged that for investigation as well. REF: 14171
Yes, that's what I meant.

At this point the problem file is a 3rd party DLL that rarely changes. Currently all of the other files in the patch change between versions because they are all version tagged. It may only be one byte that changes, but they all change. Since only the one, rarely changing file is causing problems I dealt with it by specifically testing for its name and checking its MD5 in the g_OnFileProcessed function.
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
http://yourfilelink.com - 50MB max upload, free! Intrigued General Chat 14 09-26-2006 09:44 AM
Key Features of Visual Patch 2.0 Ted Sullivan Visual Patch 2.0 0 04-08-2005 03:56 PM
What's New in Visual Patch 2.0? Ted Sullivan Visual Patch 2.0 0 04-08-2005 03:53 PM
Frequently Asked Questions Ted Sullivan Visual Patch 2.0 0 04-08-2005 03:49 PM
Install only into one of several directories with specific existing file? RichardShaw Setup Factory 5.0 0 08-17-2000 03:29 PM


All times are GMT -6. The time now is 02:10 PM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Copyright © 2000 - 2009 Indigo Rose Corporation. All rights reserved.
Indigo Rose Software