Changeset 1615


Ignore:
Timestamp:
Mar 21, 2011 11:48:47 PM (8 years ago)
Author:
tkr
Message:

Merging changesets 1539, 1540, 1555, 1556, 1557, and 1558 from trunk

Location:
stable/2.6
Files:
16 edited
7 copied

Legend:

Unmodified
Added
Removed
  • stable/2.6

  • stable/2.6/AUTHORS

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • stable/2.6/Cbc

  • stable/2.6/Cbc/scripts/parse.awk

    r1540 r1615  
    55#*                                                                           *
    66#* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
    7 # $Id: parse.awk,v 1.1 2010/10/07 16:14:36 bzfwolte Exp $
     7# $Id: parse.awk,v 1.2 2010/12/14 08:38:22 bzfwolte Exp $
    88
    99function abs(x)
     
    2020}
    2121BEGIN {
    22    printf("------------------+------+-------+-------+--------+---------\n");
    23    printf("Name              | Gap%% | Nodes |  Time | Status | Solution \n");
    24    printf("------------------+------+-------+-------+--------+---------\n");
     22   printf("----------------------------+----------------+----------------+------+-------+-------+--------+---------\n");
     23   printf("Name                        |   Dual Bound   |  Primal Bound  | Gap%% | Nodes |  Time | Status | Solution \n");
     24   printf("----------------------------+----------------+----------------+------+-------+-------+--------+---------\n");
    2525
    2626   infty = +1e+20;
     
    2828   largegap = 1e+04;
    2929
     30   # initialize summary data
     31   nsolved = 0;
     32   nstopped = 0;
     33   nfailed = 0;
     34
    3035   # initialize data to be set in parse_<solver>.awk
    3136   solver = "?";
    3237   solverversion = "?";
    33    lps = "none";
    34    lpsversion = "-";
     38   solverremark = "";
    3539}
    3640# instance name
     
    5660   aborted = 1;
    5761   timeout = 0;
    58    solstatus = "unkown";
     62   solstatus = "none";
     63   read_error = 0;
    5964}
    6065# time
     
    6368/@05/ { timelimit = $2; }
    6469# solution status
     70/Read SOL:/ {
     71   solstatus = "--";
     72}
    6573/Check SOL:/ {
    6674   intcheck = $4;
     
    92100   # determine solving status
    93101   status = "";
    94    if( aborted )
    95       status = "abort";
     102   if( aborted && !read_error)
     103     status = "abort";
     104   else if (aborted && read_error)
     105     status = "noread";
    96106   else if( timeout )
    97       status = "timeout";
     107     status = "stopped";
    98108   else
    99       status = "ok";
     109     status = "ok";
    100110
    101    # compute gap
     111   # determine overall status from solving status and solution status:
     112
     113   # instance solved correctly (including case that no solution was found)
     114   if( status == "ok" && (solstatus == "ok" || solstatus == "--") )
     115      nsolved++;
     116   # incorrect solving process or infeasible solution (including errors with solution checker)
     117   else if( status == "abort" || (solstatus == "fail" || solstatus == "error") )
     118      nfailed++;
     119   # stopped due to imposed limits
     120   else if ( status == "stopped" )
     121      nstopped++;
     122   else
     123     nnoread++;
     124 
     125  # compute gap
    102126   temp = pb;
    103127   pb = 1.0*temp;
     
    125149      gapstr = " Large";
    126150
    127    printf("%-18s %6s %7d %7d %8s %9s\n", prob, gapstr, bbnodes, time, status, solstatus);
     151   printf("%-28s %16.9g %16.9g %6s %7d %7d %8s %9s\n", prob, db, pb, gapstr, bbnodes, time, status, solstatus);
    128152}
    129153END {
    130    printf("------------------+------+-------+-------+--------+---------\n");
     154   printf("----------------------------+----------------+----------------+------+-------+-------+--------+---------\n");
     155   printf("\n");
     156   printf("solved/stopped/noread/failed: %d/%d/%d/%d\n", nsolved, nstopped, nnoread, nfailed);
     157   printf("\n");
    131158   printf("@02 timelimit: %g\n", timelimit);
    132    printf("@01 %s(%s)%s(%s)\n", solver, solverversion, lps, lpsversion);
     159   printf("@01 %s(%s)%s\n", solver, solverversion, solverremark);
    133160}
  • stable/2.6/Cbc/scripts/parse_cbc.awk

    r1540 r1615  
    55#*                                                                           *
    66#* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
     7# $Id: parse_cbc.awk,v 1.1 2010/12/09 22:22:28 bzfheinz Exp $
    78
    89# set all solver specific data:
     
    7980}
    8081
     82/errors on input/ {
     83  read_error = 1;
     84}
  • stable/2.6/Cbc/scripts/parse_cbc_sol.awk

    r1540 r1615  
    55#*                                                                           *
    66#* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
    7 BEGIN{
    8    printf("\nSolution: \n\n");
    9    infeasible = 0;
     7/^Stopped/ {
     8   if( NF > 7 )
     9      exit;
     10   printf ("=obj= %s \n", $7);
     11   next;
    1012}
    11 ($3 != "objective" && $3 != "gap" && $3 != "time"){
    12    if (!infeasible){
    13       printf ("%s %s \n", $2, $3);
    14    }
     13/^Optimal/ {
     14   printf ("=obj= %s \n", $5);
     15   next;
    1516}
    16 ($3 == "objective" && $1 != "Infeasible"){
    17       printf ("=obj= %s \n", $5);
     17/^Infeasible/ {
     18   printf ("=infeas= \n");
     19   exit;
    1820}
    19 ($3 == "gap"){
    20       printf ("=obj= %s \n", $8);
     21/^Integer/ {
     22   if( $2 == "infeasible")
     23      printf ("=infeas= \n");
     24   exit;
    2125}
    22 ($3 == "time"){
    23       printf ("=obj= %s \n", $7);
    24 }   
    25 ($1 == "Infeasible"){
    26    printf ("=infeas= \n");
    27    infeasible = 1;
     26//{
     27   printf ("%s %s \n", $2, $3);
    2828}
    2929
     30
  • stable/2.6/Cbc/scripts/run.sh

    r1540 r1615  
    1 #!/usr/bin/env bash
    21#* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
    32#*                                                                           *
     
    54#*                                                                           *
    65#* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
    7 # $Id: run.sh,v 1.1 2010/10/12 07:43:55 bzfwolte Exp $
     6# $Id: run.sh,v 1.4 2010/12/14 13:45:18 bzfheinz Exp $
    87
    9 SOLVER=$1
    10 LPS=$2
     8SHELL=$1
     9BINNAME=$2
    1110TSTNAME=$3
    1211TIMELIMIT=$4
    1312HARDMEMLIMIT=$5
     13THREADS=$6
    1414
    15 if test ! -e results
     15# construct paths
     16MIPLIBPATH=`pwd`
     17BINPATH=$MIPLIBPATH/bin
     18CHECKERPATH=$MIPLIBPATH/checker
     19RESULTSPATH=$MIPLIBPATH/results
     20SCRIPTPATH=$MIPLIBPATH/scripts
     21TSTPATH=$MIPLIBPATH/testset
     22
     23# check if the solver link (binary) exists
     24if test ! -e $BINPATH/$BINNAME
    1625then
    17     mkdir results
     26    echo "ERROR: solver link <$BINNAME> does not exist in <bin> folder; see bin/README"
     27    exit;
    1828fi
    1929
    20 OUTFILE=results/check.$SOLVER.$LPS.$TSTNAME.out
    21 RESFILE=results/check.$SOLVER.$LPS.$TSTNAME.res
    22 SOLFILE=results/check.$SOLVER.$LPS.$TSTNAME.sol
     30# check if the test set file/link exists
     31if test ! -e $TSTPATH/$TSTNAME.test
     32then
     33    echo "ERROR: test set file/link <$TSTNAME.test> does not exist in <testset> folder"
     34    exit;
     35fi
    2336
    24 CHECKTOL=-4 # short for 1e-04
     37# grep solver name
     38SOLVER=`echo $BINNAME | sed 's/\([a-zA-Z0-9_-]*\).*/\1/g'`
     39
     40# check if the result folder exist. if not create the result folder
     41if test ! -e $RESULTSPATH
     42then
     43    mkdir $RESULTSPATH
     44fi
     45
     46# construct name of output, results, and temporary solution file 
     47BASENAME=$RESULTSPATH/$TSTNAME.$BINNAME
     48OUTFILE=$BASENAME.out
     49RESFILE=$BASENAME.res
     50SOLFILE=$BASENAME.sol
     51
     52# absolut tolerance for checking linear constraints and objective value
     53LINTOL=1e-4
     54# absolut tolerance for checking integrality constraints
     55INTTOL=1e-4
     56
     57# Note that the MIP gap (gap between primal and dual solution) is not
     58# uniqly defined through all solvers. For example, there is a difference
     59# between SCIP and CPLEX. All solver, however, have the some behaviour in
     60# case of a MIP gap of 0.0.
    2561MIPGAP=0.0
    2662
     63# post system information and current time into the output file
    2764uname -a > $OUTFILE
    2865date >> $OUTFILE
    2966
     67# convert hard memory limit to kilo bytes and post it into the output file
    3068HARDMEMLIMIT=`expr $HARDMEMLIMIT \* 1024`
    3169echo "hard mem limit: $HARDMEMLIMIT k" >> $OUTFILE
    3270
    33 for i in `cat $TSTNAME.test`
     71# loop over all instance names which are listed in the test set file name
     72for i in `cat $TSTPATH/$TSTNAME.test`
    3473do
     74    # check if the current instance exists
    3575    if test -f $i
    3676    then
     
    4181        TIMESTART=`date +"%s"`
    4282        echo @03 $TIMESTART
    43         bash -c " ulimit -v $HARDMEMLIMIT k; ulimit -f 200000; ./run_$SOLVER.sh $SOLVER $LPS $i $TIMELIMIT $SOLFILE $MIPGAP"
     83        $SHELL -c " ulimit -v $HARDMEMLIMIT k; ulimit -f 2000000; $SCRIPTPATH/run_$SOLVER.sh $SOLVER $BINPATH/$BINNAME $i $TIMELIMIT $SOLFILE $THREADS $MIPGAP"
     84        echo
    4485        TIMEEND=`date +"%s"`
    4586        echo @04 $TIMEEND
    4687        echo @05 $TIMELIMIT
    47         if test -f $SOLFILE
     88        # check if a solution file was written
     89        if test -e $SOLFILE
    4890        then
    49             echo ""
    50             # bash -c " ./solchecker $i $SOLFILE $CHECKTOL" 
    51             echo ""
     91            # check if the link to the solution checker exists
     92            if test -f "$CHECKERPATH/bin/solchecker"
     93            then
     94                echo
     95                $SHELL -c " $CHECKERPATH/bin/solchecker $i $SOLFILE $LINTOL $INTTOL" 
     96                echo
     97            else
     98                echo WARNING: solution cannot be checked because solution checker is missing
     99            fi
    52100        fi
    53101        echo -----------------------------
     
    63111date >> $OUTFILE
    64112
    65 if test -f $SOLFILE
     113if test -e $SOLFILE
    66114then
    67115    rm $SOLFILE
    68116fi
    69117
    70 awk -f parse.awk -f parse_$SOLVER.awk $OUTFILE | tee $RESFILE
     118awk -f $SCRIPTPATH/parse.awk -f  $SCRIPTPATH/parse_$SOLVER.awk $OUTFILE | tee $RESFILE
  • stable/2.6/Cbc/scripts/run_cbc.sh

    r1540 r1615  
    1 #!/usr/bin/env bash
    21#* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
    32#*                                                                           *
     
    54#*                                                                           *
    65#* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
     6# $Id: run_cbc.sh,v 1.1 2010/12/09 22:22:28 bzfheinz Exp $
    77
    88SOLVER=$1
    9 LPS=$2
     9BINNAME=$2
    1010NAME=$3
    1111TIMELIMIT=$4
    1212SOLFILE=$5
    13 MIPGAP=$6
     13THREADS=$6
     14MIPGAP=$7
    1415
    15 $SOLVER -import $NAME -sec $TIMELIMIT -ratio $MIPGAP -solve -solution $SOLFILE
     16TMPFILE=results/check.$SOLVER.tmp
     17
     18if test $THREADS != 0
     19then
     20    $BINNAME -import $NAME -sec $TIMELIMIT -threads $THREADS -ratio $MIPGAP -solve -solution $SOLFILE
     21else
     22    $BINNAME -import $NAME -sec $TIMELIMIT -ratio $MIPGAP -solve -solution $SOLFILE
     23fi
    1624
    1725if test -f $SOLFILE
    1826then
    19     # translate SCIP solution format into format for solution checker.
     27    # translate CBC solution format into format for solution checker.
    2028    #  The SOLFILE format is a very simple format where in each line
    2129    #  we have a <variable, value> pair, separated by spaces.
     
    2331    #  of the solution, as computed by the solver. A variable name of
    2432    #  =infeas= can be used to indicate that an instance is infeasible.
    25     awk -f parse_cbc_sol.awk $SOLFILE
     33    awk '
     34    BEGIN{
     35        infeasible = 0;
     36        nointsol = 0;
     37    }
     38    ($3 != "objective" && $3 != "gap" && $3 != "time" && $2 != "infeasible"){
     39        if (!infeasible){
     40                printf ("%s %s \n", $2, $3);
     41            }
     42    }
     43    ($3 == "objective" && $1 != "Infeasible" && $2 != "infeasible"){
     44        printf ("=obj= %s \n", $5);
     45    }
     46    ($3 == "gap"){
     47        printf ("=obj= %s \n", $8);
     48    }
     49    ($3 == "time"){
     50        if ($5 == "integer"){
     51           printf ("=nointsol= \n");
     52           nointsol = 1;
     53        }else{
     54           printf ("=obj= %s \n", $7);
     55        }
     56    }   
     57    ($1 == "Infeasible" || $2 == "infeasible"){
     58        printf ("=infeas= \n");
     59        infeasible = 1;
     60    }' $SOLFILE | tee $TMPFILE
     61    mv $TMPFILE $SOLFILE
    2662fi
    27 
    28 
  • stable/2.6/Cbc/src/CbcSolver.cpp

    r1508 r1615  
    16211621        std::string field;
    16221622        if (!noPrinting_) {
    1623             sprintf(generalPrint, "Cbc version %s, build %s",
    1624                     CBC_VERSION, __DATE__);
     1623           sprintf(generalPrint,
     1624                   "Welcome to the CBC MILP Solver \n");
     1625            if (strcmp(CBC_VERSION, "trunk")){
     1626               sprintf(generalPrint + strlen(generalPrint),
     1627                       "Version: %s \n", CBC_VERSION);
     1628            }else{
     1629               sprintf(generalPrint + strlen(generalPrint),
     1630                       "Version: Trunk (unstable) \n");
     1631            }
     1632            sprintf(generalPrint + strlen(generalPrint),
     1633                    "Build Date: %s \n", __DATE__);
     1634#ifdef CBC_SVN_REV
     1635            sprintf(generalPrint + strlen(generalPrint),
     1636                    "Revision Number: %d \n", CBC_SVN_REV);
     1637#endif
    16251638            generalMessageHandler->message(CLP_GENERAL, generalMessages)
    16261639            << generalPrint
     
    26442657                                model_.setProblemStatus(iStatus);
    26452658                                model_.setSecondaryStatus(iStatus2);
    2646                                 //assert (lpSolver==clpSolver->getModelPtr());
     2659                                if ((iStatus == 2 || iStatus2 > 0) &&
     2660                                    !noPrinting_) {
     2661                                   std::string statusName[] = {"", "Stopped on ", "Run abandoned", "", "", "User ctrl-c"};
     2662                                   std::string minor[] = {"Optimal solution found", "Linear relaxation infeasible", "Optimal solution found (within gap tolerance)", "node limit", "time limit", "user ctrl-c", "solution limit", "Linear relaxation unbounded", "Problem proven infeasible"};
     2663                                   sprintf(generalPrint, "\nResult - %s%s\n\n",
     2664                                           statusName[iStatus].c_str(),
     2665                                           minor[iStatus2].c_str());
     2666                                   sprintf(generalPrint + strlen(generalPrint),
     2667                                           "Enumerated nodes: 0\n");
     2668                                   sprintf(generalPrint + strlen(generalPrint),
     2669                                           "Total iterations: 0\n");
     2670                                   sprintf(generalPrint + strlen(generalPrint),
     2671                                           "Time (seconds):   %.2f\n",
     2672                                           CoinCpuTime() - time0);
     2673                                   generalMessageHandler->message(CLP_GENERAL, generalMessages)
     2674                                      << generalPrint
     2675                                      << CoinMessageEol;
     2676                                }
     2677                                //assert (lpSolver==clpSolver->getModelPtr());
    26472678                                assert (clpSolver == model_.solver());
    26482679                                clpSolver->setWarmStart(NULL);
     
    59936024#endif
    59946025                                delete [] bestSolution;
    5995                                 std::string statusName[] = {"Finished", "Stopped on ", "Difficulties",
    5996                                                             "", "", "User ctrl-c"
    5997                                                            };
    5998                                 std::string minor[] = {"", "", "gap", "nodes", "time", "", "solutions", "user ctrl-c", "proven-infeasible"};
     6026                                std::string statusName[] = {"", "Stopped on ", "Run abandoned", "", "", "User ctrl-c"};
     6027                                std::string minor[] = {"Optimal solution found", "Linear relaxation infeasible", "Optimal solution found (within gap tolerance)", "node limit", "time limit", "user ctrl-c", "solution limit", "Linear relaxation unbounded", "Problem proven infeasible"};
    59996028                                int iStat = babModel_->status();
    60006029                                int iStat2 = babModel_->secondaryStatus();
     
    60116040                                statistics_result = statusName[iStat];;
    60126041                                if (!noPrinting_) {
    6013                                     sprintf(generalPrint, "Result - %s%s objective %.16g after %d nodes and %d iterations - took %.2f seconds (total time %.2f)",
    6014                                             statusName[iStat].c_str(), minor[iStat2].c_str(),
    6015                                             babModel_->getObjValue(), babModel_->getNodeCount(),
    6016                                             babModel_->getIterationCount(), time2 - time1, time2 - time0);
    6017                                     generalMessageHandler->message(CLP_GENERAL, generalMessages)
    6018                                     << generalPrint
    6019                                     << CoinMessageEol;
     6042                                    sprintf(generalPrint, "\nResult - %s%s\n",
     6043                                            statusName[iStat].c_str(),
     6044                                            minor[iStat2].c_str());
     6045                                    generalMessageHandler->message(CLP_GENERAL, generalMessages)
     6046                                       << generalPrint
     6047                                       << CoinMessageEol;
     6048                                    if (babModel_->bestSolution()){
     6049                                      sprintf(generalPrint,
     6050                                              "Objective value:  %.8f\n",
     6051                                              babModel_->getObjValue());
     6052                                    }else{
     6053                                      sprintf(generalPrint,
     6054                                              "No feasible solution found\n");
     6055                                    }
     6056                                    if (iStat2 >= 2 && iStat2 <=6){
     6057                                       sprintf(generalPrint + strlen(generalPrint),
     6058                                               "Lower bound:      %.3f\n",
     6059                                               babModel_->getBestPossibleObjValue());
     6060                                       if (babModel_->bestSolution()){
     6061                                          sprintf(generalPrint + strlen(generalPrint),
     6062                                                  "Gap:              %.2f\n",
     6063                                                  (babModel_->getObjValue()-babModel_->getBestPossibleObjValue())/babModel_->getBestPossibleObjValue());
     6064                                       }
     6065                                    }
     6066                                    sprintf(generalPrint + strlen(generalPrint),
     6067                                            "Enumerated nodes: %d\n",
     6068                                            babModel_->getNodeCount());
     6069                                    sprintf(generalPrint + strlen(generalPrint),
     6070                                            "Total iterations: %d\n",
     6071                                            babModel_->getIterationCount());
     6072                                    sprintf(generalPrint + strlen(generalPrint),
     6073                                            "Time (seconds):   %.2f\n",
     6074                                            time2 - time1);
     6075                                    sprintf(generalPrint + strlen(generalPrint),
     6076                                            "Total time:       %.2f\n",
     6077                                            time2 - time0);
     6078                                    generalMessageHandler->message(CLP_GENERAL, generalMessages)
     6079                                       << generalPrint
     6080                                       << CoinMessageEol;
    60206081                                }
    60216082                                int returnCode = callBack(babModel_, 5);
     
    74947555                                    double objValue = lpSolver->getObjValue() * lpSolver->getObjSense();
    74957556                                    int iStat = lpSolver->status();
    7496                                     if (integerStatus >= 0)
     7557                                    int iStat2 = -1;
     7558                                    if (integerStatus >= 0){
    74977559                                        iStat = integerStatus;
     7560                                        iStat2 = babModel_->secondaryStatus();
     7561                                    }
    74987562                                    if (iStat == 0) {
    74997563                                        fprintf(fp, "Optimal" );
     7564                                        if (iStat2 == 2){
     7565                                           fprintf(fp, " (within gap tolerance)" );
     7566                                        }
    75007567                                    } else if (iStat == 1) {
    75017568                                        // infeasible
     
    75057572                                        fprintf(fp, "Unbounded" );
    75067573                                    } else if (iStat >= 3 && iStat <= 5) {
    7507                                         if (iStat == 3)
    7508                                             fprintf(fp, "Stopped on iterations or time" );
    7509                                         else if (iStat == 4)
    7510                                             fprintf(fp, "Stopped on difficulties" );
    7511                                         else
    7512                                             fprintf(fp, "Stopped on ctrl-c" );
     7574                                        if (iStat == 3) {
     7575                                            if (iStat2 == 4){
     7576                                                fprintf(fp, "Stopped on time" );
     7577                                            }else{
     7578                                                fprintf(fp, "Stopped on iterations" );
     7579                                            }
     7580                                        } else if (iStat == 4){
     7581                                            fprintf(fp, "Stopped on difficulties" );
     7582                                        } else {
     7583                                            fprintf(fp, "Stopped on ctrl-c" );
     7584                                        }
    75137585                                        if (babModel_ && !babModel_->bestSolution())
    75147586                                            fprintf(fp, " (no integer solution - continuous used)");
    75157587                                    } else if (iStat == 6) {
    7516                                         // bab infeasible
    7517                                         fprintf(fp, "Integer infeasible" );
     7588                                         // bab infeasible
     7589                                         fprintf(fp, "Integer infeasible" );
    75187590                                    } else {
    7519                                         fprintf(fp, "Status unknown" );
    7520                                     }
    7521                                     fprintf(fp, " - objective value %15.8g\n", objValue);
     7591                                         fprintf(fp, "Status unknown" );
     7592                                    }
     7593                                    fprintf(fp, " - objective value %.8f\n", objValue);
    75227594                                }
    75237595#endif
     
    79067978    babModel_ = NULL;
    79077979    model_.solver()->setWarmStart(NULL);
    7908     sprintf(generalPrint, "Total time %.2f", CoinCpuTime() - time0);
    7909     generalMessageHandler->message(CLP_GENERAL, generalMessages)
    7910     << generalPrint
    7911     << CoinMessageEol;
     7980    //sprintf(generalPrint, "Total time %.2f", CoinCpuTime() - time0);
     7981    //generalMessageHandler->message(CLP_GENERAL, generalMessages)
     7982    //<< generalPrint
     7983    //<< CoinMessageEol;
    79127984    return 0;
    79137985}
  • stable/2.6/INSTALL

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • stable/2.6/LICENSE

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • stable/2.6/Makefile.am

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • stable/2.6/Makefile.in

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • stable/2.6/README

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • stable/2.6/config.guess

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • stable/2.6/config.sub

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • stable/2.6/configure.ac

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • stable/2.6/depcomp

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • stable/2.6/install-sh

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • stable/2.6/ltmain.sh

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • stable/2.6/missing

    • Property svn:mergeinfo changed (with no actual effect on merging)
Note: See TracChangeset for help on using the changeset viewer.