Index: branches/czw_branch/20100427/ippTools/src/camtool.c
===================================================================
--- trunk/ippTools/src/camtool.c	(revision 27777)
+++ branches/czw_branch/20100427/ippTools/src/camtool.c	(revision 27784)
@@ -482,4 +482,15 @@
     PXOPT_LOOKUP_S16(quality, config->args, "-quality", false, false);
 
+    PXOPT_LOOKUP_STR(ver_pslib, config->args, "-ver_pslib", false, false);
+    PXOPT_LOOKUP_STR(ver_psmodules, config->args, "-ver_psmodules", false, false);
+    PXOPT_LOOKUP_STR(ver_psphot, config->args, "-ver_psphot", false, false);
+    PXOPT_LOOKUP_STR(ver_psastro, config->args, "-ver_psastro", false, false);
+    PXOPT_LOOKUP_STR(ver_ppstats, config->args, "-ver_ppstats", false, false);
+    PXOPT_LOOKUP_STR(ver_ppimage, config->args, "-ver_ppimage", false, false);
+    PXOPT_LOOKUP_STR(ver_streaks, config->args, "-ver_streaks", false, false);
+
+    psTrace("czw.test",1,"Received versions: pslib %s psmodules %s psphot %s psastro %s ppstats %s ppImage %s streaks %s\n",
+	    ver_pslib,ver_psmodules,ver_psphot,ver_psastro,ver_ppstats,ver_ppimage,ver_streaks);
+    
 //    Get this from the chipRun
 //    PXOPT_LOOKUP_S64(magicked, config->args, "-magicked", false, false);
@@ -596,4 +607,12 @@
         fault,
         quality
+/* 	quality, */
+/* 	ver_pslib, */
+/* 	ver_psmodules, */
+/* 	ver_psphot, */
+/* 	ver_psastro, */
+/* 	ver_ppstats, */
+/* 	ver_ppimage, */
+/* 	ver_streaks	 */
         );
 
Index: branches/czw_branch/20100427/ippTools/src/camtoolConfig.c
===================================================================
--- trunk/ippTools/src/camtoolConfig.c	(revision 27777)
+++ branches/czw_branch/20100427/ippTools/src/camtoolConfig.c	(revision 27784)
@@ -174,4 +174,12 @@
     psMetadataAddS64(addprocessedexpArgs, PS_LIST_TAIL, "-magicked",   0,         "set magicked", 0);
 
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-ver_pslib", 0, "define psLib version", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-ver_psmodules", 0, "define psModules version", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-ver_psphot", 0, "define psphot version", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-ver_psastro", 0, "define psastro version", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-ver_ppstats", 0, "define ppStats version", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-ver_ppImage", 0, "define ppImage version", NULL);
+    psMetadataAddStr(addprocessedexpArgs, PS_LIST_TAIL, "-ver_streaks", 0, "define streaksremove version", NULL);
+    
     // -processedexp
     psMetadata *processedexpArgs = psMetadataAlloc();
Index: branches/czw_branch/20100427/ippTools/src/chiptool.c
===================================================================
--- trunk/ippTools/src/chiptool.c	(revision 27777)
+++ branches/czw_branch/20100427/ippTools/src/chiptool.c	(revision 27784)
@@ -583,4 +583,15 @@
     PXOPT_LOOKUP_S64(magicked, config->args,       "-magicked", false, false);
 
+    PXOPT_LOOKUP_STR(ver_pslib, config->args, "-ver_pslib", false, false);
+    PXOPT_LOOKUP_STR(ver_psmodules, config->args, "-ver_psmodules", false, false);
+    PXOPT_LOOKUP_STR(ver_psphot, config->args, "-ver_psphot", false, false);
+    PXOPT_LOOKUP_STR(ver_psastro, config->args, "-ver_psastro", false, false);
+    PXOPT_LOOKUP_STR(ver_ppstats, config->args, "-ver_ppstats", false, false);
+    PXOPT_LOOKUP_STR(ver_ppimage, config->args, "-ver_ppimage", false, false);
+    PXOPT_LOOKUP_STR(ver_streaks, config->args, "-ver_streaks", false, false);
+
+    psTrace("czw.test",1,"Received versions: pslib %s psmodules %s psphot %s psastro %s ppstats %s ppImage %s streaks %s\n",
+	    ver_pslib,ver_psmodules,ver_psphot,ver_psastro,ver_ppstats,ver_ppimage,ver_streaks);
+    
     // default values
     PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false);
@@ -660,4 +671,12 @@
                                    quality,
                                    magicked
+/* 				   magicked, */
+/* 				   ver_pslib, */
+/* 				   ver_psmodules, */
+/* 				   ver_psphot, */
+/* 				   ver_psastro, */
+/* 				   ver_ppstats, */
+/* 				   ver_ppimage, */
+/* 				   ver_streaks */
             )) {
         // rollback
Index: branches/czw_branch/20100427/ippTools/src/chiptoolConfig.c
===================================================================
--- trunk/ippTools/src/chiptoolConfig.c	(revision 27777)
+++ branches/czw_branch/20100427/ippTools/src/chiptoolConfig.c	(revision 27784)
@@ -182,4 +182,12 @@
     psMetadataAddS64(addprocessedimfileArgs, PS_LIST_TAIL, "-magicked",  0,        "define magicked status", 0);
 
+    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-ver_pslib", 0, "define psLib version", NULL);
+    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-ver_psmodules", 0, "define psModules version", NULL);
+    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-ver_psphot", 0, "define psphot version", NULL);
+    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-ver_psastro", 0, "define psastro version", NULL);
+    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-ver_ppstats", 0, "define ppStats version", NULL);
+    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-ver_ppImage", 0, "define ppImage version", NULL);
+    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-ver_streaks", 0, "define streaksremove version", NULL);
+    
     // -processedimfile
     psMetadata *processedimfileArgs = psMetadataAlloc();
Index: branches/czw_branch/20100427/ippTools/src/difftool.c
===================================================================
--- trunk/ippTools/src/difftool.c	(revision 27777)
+++ branches/czw_branch/20100427/ippTools/src/difftool.c	(revision 27784)
@@ -548,4 +548,14 @@
     PXOPT_LOOKUP_S64(magicked, config->args, "-magicked", false, false);
 
+    PXOPT_LOOKUP_STR(ver_pslib, config->args, "-ver_pslib", false, false);
+    PXOPT_LOOKUP_STR(ver_psmodules, config->args, "-ver_psmodules", false, false);
+    PXOPT_LOOKUP_STR(ver_psphot, config->args, "-ver_psphot", false, false);
+    PXOPT_LOOKUP_STR(ver_ppstats, config->args, "-ver_ppstats", false, false);
+    PXOPT_LOOKUP_STR(ver_ppsub, config->args, "-ver_ppsub", false, false);
+    PXOPT_LOOKUP_STR(ver_streaks, config->args, "-ver_streaks", false, false);
+
+    psTrace("czw.test",1,"Received versions: pslib %s psmodules %s psphot %s ppstats %s ppsub %s streaks %s\n",
+	    ver_pslib,ver_psmodules,ver_psphot,ver_ppstats,ver_ppsub,ver_streaks);
+    
     if (!psDBTransaction(config->dbh)) {
         psError(PS_ERR_UNKNOWN, false, "database error");
@@ -581,4 +591,12 @@
                            quality,
                            magicked
+/* 			   magicked, */
+/* 			   ver_pslib, */
+/* 			   ver_psmodules, */
+/* 			   ver_psphot, */
+/* 			   ver_ppstats, */
+/* 			   ver_ppsub, */
+/* 			   ver_streaks */
+			 
           )) {
         if (!psDBRollback(config->dbh)) {
Index: branches/czw_branch/20100427/ippTools/src/difftoolConfig.c
===================================================================
--- trunk/ippTools/src/difftoolConfig.c	(revision 27777)
+++ branches/czw_branch/20100427/ippTools/src/difftoolConfig.c	(revision 27784)
@@ -126,5 +126,11 @@
     psMetadataAddF32(adddiffskyfileArgs, PS_LIST_TAIL, "-good_frac",  0, "define %% of good pixels", NAN);
     psMetadataAddS64(adddiffskyfileArgs, PS_LIST_TAIL, "-magicked",  0, "define magicked state", 0);
-
+    psMetadataAddStr(adddiffskyfileArgs, PS_LIST_TAIL, "-ver_pslib", 0, "define psLib version", NULL);
+    psMetadataAddStr(adddiffskyfileArgs, PS_LIST_TAIL, "-ver_psmodules", 0, "define psModules version", NULL);
+    psMetadataAddStr(adddiffskyfileArgs, PS_LIST_TAIL, "-ver_psphot", 0, "define psphot version", NULL);
+    psMetadataAddStr(adddiffskyfileArgs, PS_LIST_TAIL, "-ver_ppstats", 0, "define ppStats version", NULL);
+    psMetadataAddStr(adddiffskyfileArgs, PS_LIST_TAIL, "-ver_ppsub", 0, "define ppSub version", NULL);
+    psMetadataAddStr(adddiffskyfileArgs, PS_LIST_TAIL, "-ver_streaks", 0, "define streaksremove version", NULL);
+    
     // -advance
     psMetadata *advanceArgs = psMetadataAlloc();
Index: branches/czw_branch/20100427/ippTools/src/pxtools.c
===================================================================
--- trunk/ippTools/src/pxtools.c	(revision 27777)
+++ branches/czw_branch/20100427/ippTools/src/pxtools.c	(revision 27784)
@@ -48,4 +48,42 @@
 }
 
+psString pxMergeCodeVersions(psString version1, psString version2) {
+  psString out = NULL;
+
+  bool mod1 = false;
+  bool mod2 = false;
+
+  psS32 num1;
+  psS32 num2;
+  psS32 numO;
+  
+  if (strchr(version1,'M')) {
+    psStringSubstitute(&version1,"M","");
+    mod1 = true;
+  }
+  if (strchr(version2,'M')) {
+    psStringSubstitute(&version2,"M","");
+    mod2 = true;
+  }
+
+  num1 = strtol(version1,NULL,10);
+  num2 = strtol(version2,NULL,10);
+
+  if (num1 >= num2) {
+    numO = num1;
+  }
+  else {
+    numO = num2;
+  }
+  
+  psStringAppend(&out,"%" PRId32,numO);
+  if (mod1 || mod2) {
+    psStringAppend(&out,"M");
+  }
+  return(out);
+}
+
+
+
 // 'scrubbed' is no longer a virtual state equivalent to cleaned, but allows files to be removed
 // even if the config files is missing.  This change was prompted as files that are cleaned can
Index: branches/czw_branch/20100427/ippTools/src/stacktool.c
===================================================================
--- trunk/ippTools/src/stacktool.c	(revision 27777)
+++ branches/czw_branch/20100427/ippTools/src/stacktool.c	(revision 27784)
@@ -844,4 +844,14 @@
     PXOPT_LOOKUP_F32(good_frac, config->args, "-good_frac", false, false);
 
+    PXOPT_LOOKUP_STR(ver_pslib, config->args, "-ver_pslib", false, false);
+    PXOPT_LOOKUP_STR(ver_psmodules, config->args, "-ver_psmodules", false, false);
+    PXOPT_LOOKUP_STR(ver_psphot, config->args, "-ver_psphot", false, false);
+    PXOPT_LOOKUP_STR(ver_ppstats, config->args, "-ver_ppstats", false, false);
+    PXOPT_LOOKUP_STR(ver_ppstack, config->args, "-ver_ppstack", false, false);
+    PXOPT_LOOKUP_STR(ver_streaks, config->args, "-ver_streaks", false, false);
+
+    psTrace("czw.test",1,"Received versions: pslib %s psmodules %s psphot %s ppstats %s ppstack %s streaks %s\n",
+	    ver_pslib,ver_psmodules,ver_psphot,ver_ppstats,ver_ppstack,ver_streaks);
+    
     // default values
     PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false);
@@ -884,4 +894,11 @@
                                fault,
                                quality
+/* 			       quality, */
+/* 			       ver_pslib, */
+/* 			       ver_psmodules, */
+/* 			       ver_psphot, */
+/* 			       ver_ppstats, */
+/* 			       ver_ppstack, */
+/* 			       ver_streaks */
           )) {
         if (!psDBRollback(config->dbh)) {
Index: branches/czw_branch/20100427/ippTools/src/stacktoolConfig.c
===================================================================
--- trunk/ippTools/src/stacktoolConfig.c	(revision 27777)
+++ branches/czw_branch/20100427/ippTools/src/stacktoolConfig.c	(revision 27784)
@@ -171,4 +171,11 @@
     psMetadataAddS16(addsumskyfileArgs, PS_LIST_TAIL, "-quality",  0,            "set quality", 0);
 
+    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-ver_pslib", 0, "define psLib version", NULL);
+    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-ver_psmodules", 0, "define psModules version", NULL);
+    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-ver_psphot", 0, "define psphot version", NULL);
+    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-ver_ppstats", 0, "define ppStats version", NULL);
+    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-ver_ppstack", 0, "define ppStack version", NULL);
+    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-ver_streaks", 0, "define streaksremove version", NULL);
+
     // -sumskyfile
     psMetadata *sumskyfileArgs= psMetadataAlloc();
Index: branches/czw_branch/20100427/ippTools/src/warptool.c
===================================================================
--- trunk/ippTools/src/warptool.c	(revision 27777)
+++ branches/czw_branch/20100427/ippTools/src/warptool.c	(revision 27784)
@@ -1005,8 +1005,21 @@
     PXOPT_LOOKUP_S64(magicked, config->args, "-set_magicked", false, false);
 
+    PXOPT_LOOKUP_STR(ver_pslib, config->args, "-ver_pslib", false, false);
+    PXOPT_LOOKUP_STR(ver_psmodules, config->args, "-ver_psmodules", false, false);
+    PXOPT_LOOKUP_STR(ver_psphot, config->args, "-ver_psphot", false, false);
+    PXOPT_LOOKUP_STR(ver_ppstats, config->args, "-ver_ppstats", false, false);
+    PXOPT_LOOKUP_STR(ver_pswarp, config->args, "-ver_pswarp", false, false);
+    PXOPT_LOOKUP_STR(ver_streaks, config->args, "-ver_streaks", false, false);
+
+    psTrace("czw.test",1,"Received versions: pslib %s psmodules %s psphot %s ppstats %s pswarp %s streaks %s\n",
+	    ver_pslib,ver_psmodules,ver_psphot,ver_ppstats,ver_pswarp,ver_streaks);
+   
+    
     // default values
     PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false);
     PXOPT_LOOKUP_S16(quality, config->args, "-quality", false, false);
 
+
+    
     // we don't want to insert the last skyfile in a run but then not mark the
     // run as 'stop'
@@ -1037,4 +1050,11 @@
                            quality,
                            magicked
+/* 			   magicked, */
+/* 			   ver_pslib, */
+/* 			   ver_psmodules, */
+/* 			   ver_psphot, */
+/* 			   ver_ppstats, */
+/* 			   ver_pswarp, */
+/* 			   ver_streaks */
         )) {
         if (!psDBRollback(config->dbh)) {
Index: branches/czw_branch/20100427/ippTools/src/warptoolConfig.c
===================================================================
--- trunk/ippTools/src/warptoolConfig.c	(revision 27777)
+++ branches/czw_branch/20100427/ippTools/src/warptoolConfig.c	(revision 27784)
@@ -221,4 +221,12 @@
     psMetadataAddS16(addwarpedArgs, PS_LIST_TAIL, "-quality",  0,            "set quality", 0);
 
+    psMetadataAddStr(addwarpedArgs, PS_LIST_TAIL, "-ver_pslib", 0, "define psLib version", NULL);
+    psMetadataAddStr(addwarpedArgs, PS_LIST_TAIL, "-ver_psmodules", 0, "define psModules version", NULL);
+    psMetadataAddStr(addwarpedArgs, PS_LIST_TAIL, "-ver_psphot", 0, "define psphot version", NULL);
+    psMetadataAddStr(addwarpedArgs, PS_LIST_TAIL, "-ver_ppstats", 0, "define ppStats version", NULL);
+    psMetadataAddStr(addwarpedArgs, PS_LIST_TAIL, "-ver_pswarp", 0, "define pswarp version", NULL);
+    psMetadataAddStr(addwarpedArgs, PS_LIST_TAIL, "-ver_streaks", 0, "define streaksremove version", NULL);
+
+    
     // -warped
     psMetadata *warpedArgs = psMetadataAlloc();
