Tuesday, November 24, 2015

Serena Dimensions: open Files with correct Filename

At work we use Serena Dimensions for Version Control.
Double-clicking a sourcefile opens the code in the editor of your choice, but unfortunately Dimensions doesn't provide a meaningful filename as the clicked element is downloaded to a temporary file and the editor shows just the name of the temporary file.

After requesting an improvement in the Dimensions community i got some great hints from Paul Caruana and finally implemented the following workaround:

  • Create a batch file
    echo off 
    set dimexe="c:\program files (x86)\serena\dimensions 12.2\cm\prog\dmcli"
    set ueexe="c:\program files (x86)\ultraedit\uedit32"
    set fi=%2
    set fi=%fi:"=%
    set ver=%3
    set ver=%ver:"=%
    set typ=%5
    set typ=%typ:"=%
    set tmpfile=C:\tmp\%fi%.%ver%.%typ%
    
    echo parms: %* 
    echo file: %fi% 
    %dimexe% FI %1 /USER_FILENAME="%tmpfile%" /EXPAND /OVERWRITE 
    %ueexe% %tmpfile%
    
  • Create a new "Tool" inside Dimensions:
    •  Menu "Tools" -> ""Customize Menu and Toolbar"; Tab "Tools" -> Create a new Tool (Star-Button), choose a name (e.g. "MyEdit").
      Configuration: 
      • Command: C:\foo\projects\cmedit\cmedit.cmd
      • Arguments: $[Specification] $[Filename] $[Revision] $(Product):$(Workset) $[type]
      • Start In: c:\foo
This gives me a "MyEdit" Entry in the Context Menu which downloads the file & launches Ultraedit with a meaningful filename - Mission accomplished!

Sunday, November 22, 2015

Serena Dimensions & KDiff3

At work we use Serena Dimensions for Version Control.
Dimensions seems to use "pvcsmerge" for Diff-view which is imho a bit out-of-date regarding functionality and usability.

My personal favorite would be BeyondCompare, but i have no budget for buying such stuff, so i looked into a way to integrate Kdiff3 (imho next-best) into Serena Dimensions.

I did some investigation and finaly came to the conclusion that calling "Diff" lets Dimensions download the Files-to-be-diff'ed to temporary files and call "pvcsmerge" with those files.

So i created an executable that takes the same parameter as "pvcsmerge," but launches Kdiff3 with reformated parameters.
Replacing the original "pvcsmerge.exe" with the homebrewn executable provided exactly the functionality i wanted!


Implementation (feedback welcome, but pls. don't flame me because of the poor C :-)):

Source:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

main(int argc, char *argv[])
{
   int c;
   char ch;
   
     // file contains the name of the files-to-be-compared
   char* filename;
   filename = argv[2];
   
   FILE *fi = fopen(filename, "r");
   #define MAXLINE 200
   char bufr[MAXLINE];
   char para[MAXLINE];
   char value[MAXLINE];
   char v1 [MAXLINE];
   char v2 [MAXLINE];
   char n1 [MAXLINE];
   char n2 [MAXLINE];

   if(fi != NULL) {
     while( !feof(fi)) {
       // String2parse: <para>=<value>
       fscanf(fi, "%[^=] %*c %s\n", para, value);
       
       if (strcmp(para, "ANCESTOR") == 0) {
         // String2parse: "C:\Users\xxxxx\AppData\Local\Temp\SRC(yyyyy)_12.pt1646c2.tmp","SRC(yyyyy);12 - Derivative"
         sscanf( value, "\"%[^\"]\",\"%[^\"]\"", v1, n1);
       }
       
       if (strcmp(para, "DERIVATIVES") == 0) {
         sscanf( value, "\"%[^\"]\",\"%[^\"]\"", v2, n2);
       }
     }
        
   } else {
   }
   
   // start kdiff3  
   char start[1024];
   strcpy (start, "c:\\xxxxxx\\kdiff3\\kdiff3.exe ");
   strcat (start, v1);
   strcat (start, " ");
   strcat (start, v2);
   strcat (start, " --L1 ");
   strcat (start, n1);
   strcat (start, " --L2 ");
   strcat (start, n2);
   system(start);
      
   return 0;
}

Compile (i'm using mingw):
gcc pvcsmerge.c -o pvcsmerge.exe




Thursday, November 12, 2015

CoolTool: VU+ Duo2, Enigma TV Box

Meine geschätzte Dreambox 7025 2xDVBS-Dual ist dem  gerade stattfindenden HD-Umstellungswahn zum Opfer gefallen.

Nach einiger Recherche bin ich bei einer VU+ Duo2 (wieder mit 2xDVBS-Dual) gelandet.
Und ich muss sagen der erste Eindruck ist wirklich prima.
Die bewährte (naja, vielleicht doch eher "gewohnte") Enigma-Obefläche,  Reaktionszeiten, Qualität, alles 1A.

Das aktuelle VTI Image bietet einen gewissen Wiedererkennungseffekt, aber auch jede Menge Verbesserungen gegenüber der Dreambox (wobei ich zugeben muss, daß ich irgendwann mit der Dreambox aus der Update-Schleife ausgestiegen bin, weil nach jedem Update irgendwas nicht funktioniert hat) - kann also sein, daß der Vergleich jetzt nicht ganz fair ist.

Bis jetzt ein klares "CoolTool".

[Edit] nach einem ver-flash-en & repair: aktuelles VTI via USB-Stick + Oscam + Oscam-butler und der ORF ist hell.