I am using RCS 5.9.2 and cvs 1.12.13 on a 64 bit Ubuntu 14.10. I am having no probems with cvs, but on a few of my repository files, rlog fails with an error message of the form: rlog: ./handandfoot/runnables/UpdateStacks.java,v:20: branch refers to non-existent revision `1.16.2.1'
    rlog aborted

I have attached the file that produces the above error. I can't see any problem with that file, but I am certainly not an RCS expert. Can anyone see what the problem is? Or is this possibly a bug in RCS?

Thanks for any help you can provide.


    -John

head    1.16;
access;
symbols
        pre_resize_mods:1.16.2.2
        networkedPlayers:1.16.0.2
        priorToNetworkedPlayers:1.16
        release1_2:1.12
        release1_1:1.12
        release1_0:1.12
        reorg:1.12.0.2
        preReorg:1.12
        version1_0_0:1.6;
locks; strict;
comment @# @;


1.16
date    2014.01.01.00.11.55;    author jra;     state Exp;
branches
        1.16.2.1;
next    1.15;
deltatype       text;
commitid        10052C35D4A11ADECBF;

1.15
date    2013.11.05.00.33.07;    author jra;     state Exp;
branches;
next    1.14;
deltatype       text;
commitid        10052783CC211FA8F64;

1.14
date    2013.10.21.00.01.51;    author jra;     state Exp;
branches;
next    1.13;
deltatype       text;
commitid        10052646EEF1DB40C9E;

1.13
date    2013.10.08.19.47.39;    author jra;     state Exp;
branches;
next    1.12;
deltatype       text;
commitid        100525461570BAFEE1C;

1.12
date    2013.10.02.14.44.18;    author jra;     state Exp;
branches;
next    1.11;
deltatype       text;
commitid        100524C31420D3B5F59;

1.11
date    2013.08.19.16.14.20;    author jra;     state Exp;
branches;
next    1.10;
deltatype       text;
commitid        10052124459105012EE;

1.10
date    2013.07.31.17.30.19;    author jra;     state Exp;
branches;
next    1.9;
deltatype       text;
commitid        10051F949AA10732D4A;

1.9
date    2013.07.18.03.39.13;    author jra;     state Exp;
branches;
next    1.8;
deltatype       text;
commitid        10051E7635F11ECC1E3;

1.8
date    2013.07.17.02.55.11;    author jra;     state Exp;
branches;
next    1.7;
deltatype       text;
commitid        10051E6078D18046FA6;

1.7
date    2013.07.07.04.00.11;    author jra;     state Exp;
branches;
next    1.6;
deltatype       text;
commitid        10051D8E7C72B29D458;

1.6
date    2013.06.14.12.43.26;    author jra;     state Exp;
branches;
next    1.5;
deltatype       text;
commitid        10051BB0FEC125BB459;

1.5
date    2013.06.14.03.04.11;    author jra;     state Exp;
branches;
next    1.4;
deltatype       text;
commitid        10051BA882A13672BEB;

1.4
date    2013.06.13.22.18.43;    author jra;     state Exp;
branches;
next    1.3;
deltatype       text;
commitid        10051BA45420DA75D49;

1.3
date    2013.06.13.00.50.02;    author jra;     state Exp;
branches;
next    1.2;
deltatype       text;
commitid        10051B9173911105A84;

1.2
date    2013.06.11.00.55.13;    author jra;     state Exp;
branches;
next    1.1;
deltatype       text;
commitid        10051B6756C103A7740;

1.1
date    2013.06.10.17.37.59;    author jra;     state Exp;
branches;
next    ;
deltatype       text;
commitid        10051B60EF40CC19D07;

1.16.2.1
date    2014.07.09.01.58.42;    author jra;     state Exp;
branches;
next    1.16.2.2;
deltatype       text;
commitid        10053BCA1CF24C89D9D;

1.16.2.2
date    2014.12.04.20.21.25;    author jra;     state Exp;
branches;
next    1.16.2.3;
deltatype       text;
commitid        1005480C2450F2841F3;

1.16.2.3
date    2014.12.13.00.04.49;    author jra;     state Exp;
branches;
next    1.16.2.4;
deltatype       text;
commitid        100548B829C20914CE6;

1.16.2.4
date    2014.12.13.01.53.30;    author jra;     state Exp;
branches;
next    ;
deltatype       text;
permissions     644;
commitid        dec548b9c166c3b;
kopt    kv;
filename        @UpdateStacks.java@;


desc
@@


1.16
log
@Restored previously removed code that called CardPane.remove(). This is needed 
to keep wildCount correct.
Added code to UpdateStacks to keep vertical pane colors correct.
@
text
@/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package handandfoot.runnables;

import handandfoot.CardImageView;
import handandfoot.CardVertPaneInterface;
import handandfoot.GameModel;
import handandfoot.HandAndFoot;
import handandfoot.Player;
import java.util.Collections;
import org.jra.cards.Card;

/**
 *
 * @@author jra
 */
public class UpdateStacks implements Runnable {

    @@Override
    public void run() {
        if (HandAndFoot.debug.get(HandAndFoot.DEBUG_LOG)) {
            GameModel.log("In updateStacks");
        }
        Card card = GameModel.discardStack.peek();
        if (card == null) {
            GameModel.discardView.setVisible(false);
        } else {
            GameModel.discardView.setCard(card);
            GameModel.discardView.setVisible(true);
        }

        if (HandAndFoot.debug.get(HandAndFoot.DEBUG_LOG)) {
            GameModel.log("in UpdateStacks: myHand size is " + 
GameModel.hands.get(Player.Me).size());
        }
        Collections.sort(GameModel.hands.get(Player.Me));
        GameModel.myHandPane.getChildren().clear();
        if (HandAndFoot.debug.get(HandAndFoot.DEBUG_LOG)) {
            GameModel.log("\tcardsDrawn = " + GameModel.cardsDrawn.get());
        }
        for (int i = 0; i < GameModel.hands.get(Player.Me).size(); i++) {
            Card c = GameModel.hands.get(Player.Me).get(i);
            CardImageView iv = new CardImageView(c);
            if (GameModel.currentPlayer == Player.Me &&
//                    HandAndFoot.cardNotUsable != c &&
                    GameModel.cardsDrawn.get() > 1) {
                if (HandAndFoot.debug.get(HandAndFoot.DEBUG_LOG)) {
                    GameModel.log("\tsetting OnDragDetected for " + c);
                }
                iv.setOnDragDetected(HandAndFoot.MyHandDragDetector);
            } else {
                if (HandAndFoot.debug.get(HandAndFoot.DEBUG_LOG)) {
                    GameModel.log("\tunsetting OnDragDetected for " + c);
                }
                iv.setOnDragDetected(null);
            }
            GameModel.myHandPane.getChildren().add(iv);
            iv.setId(c.toString());
            iv.setX(1.0);
            iv.setY(1.0 + HandAndFoot.HAND_VERT_OVERLAP * i);
            GameModel.myHandPane.setMouseTransparent(false);
        }
        
        for (CardVertPaneInterface cvpi : GameModel.myVertCanastas) {
            if (cvpi.getWildCount() > 0) {
                cvpi.setStyle("-fx-background-color: black;");
            } else {
                cvpi.setStyle("-fx-background-color: red;");
            }
        }
        for (CardVertPaneInterface cvpi : GameModel.theirVertCanastas) {
            if (cvpi.getWildCount() > 0) {
                cvpi.setStyle("-fx-background-color: black;");
            } else {
                cvpi.setStyle("-fx-background-color: red;");
            }
        }
        
//        if (HandAndFoot.debug.get(HandAndFoot.DEBUG_SHOW_HANDS)) {
//            GameModel.handDisplays[Player.West.ordinal() - 
1].displayHand(GameModel.westHand);
//            GameModel.handDisplays[Player.North.ordinal() - 
1].displayHand(GameModel.partnerHand);
//            GameModel.handDisplays[Player.East.ordinal() - 
1].displayHand(GameModel.eastHand);
//        }
        synchronized (HandAndFoot.updateStacksLock) {
            HandAndFoot.updateStacksLock.notifyAll();
        }
        if (HandAndFoot.debug.get(HandAndFoot.DEBUG_LOG)) {
            GameModel.log("end of UpdateStacks");
        }
    }
}
@


1.16.2.1
log
@Hand can now be unsorted
@
text
@a11 1
import handandfoot.config.Config;
d37 1
a37 3
        if (Config.keepHandSorted.get()) {
            Collections.sort(GameModel.hands.get(Player.Me));
        }
@


1.16.2.2
log
@Minor mod with hope of eliminating CME.
@
text
@d61 1
d65 1
a65 1
            GameModel.myHandPane.getChildren().add(iv);
a66 1
        GameModel.myHandPane.setMouseTransparent(false);
@


1.16.2.3
log
@Improved board layout for dynamic resizing.
@
text
@d63 1
a63 1
            iv.setY(1.0 + HandAndFoot.HAND_VERT_OVERLAP.doubleValue() * i);
@


1.16.2.4
log
@myHandPane is now toFront().
@
text
@a65 1
        GameModel.myHandPane.toFront();
@


1.15
log
@Changed cardsDrawn check to ">1".
@
text
@d8 1
d65 15
@


1.14
log
@Eliminated HandAndFoot.unusableCard.
Fixed exit via "X" button to kill pileHandlerThread
@
text
@d46 1
a46 1
                    GameModel.cardsDrawn.get() == 2) {
@


1.13
log
@Fixed bug with hand and feet getting confused. now all references should be 
through GameModel.hands map.
@
text
@d39 1
a39 1
            GameModel.log("\tcardNotUsable = " + HandAndFoot.cardNotUsable + ", 
cardsDrawn = " + GameModel.cardsDrawn.get());
d45 1
a45 1
                    HandAndFoot.cardNotUsable != c &&
@


1.12
log
@Some more code cleanup.
@
text
@d34 1
a34 1
            GameModel.log("in UpdateStacks: myHand size is " + 
GameModel.myHand.size());
d36 1
a36 1
        Collections.sort(GameModel.myHand);
d41 2
a42 2
        for (int i = 0; i < GameModel.myHand.size(); i++) {
            Card c = GameModel.myHand.get(i);
@


1.11
log
@now uses notifyAll() instead of notify() (suggested by findbugs)
@
text
@d64 5
a68 5
        if (HandAndFoot.debug.get(HandAndFoot.DEBUG_SHOW_HANDS)) {
            GameModel.handDisplays[Player.West.ordinal() - 
1].displayHand(GameModel.westHand);
            GameModel.handDisplays[Player.North.ordinal() - 
1].displayHand(GameModel.partnerHand);
            GameModel.handDisplays[Player.East.ordinal() - 
1].displayHand(GameModel.eastHand);
        }
@


1.10
log
@Fixed bug: Undoing move after play from discard stack results in card drawn 
from pile being unplayable.
@
text
@d70 1
a70 1
            HandAndFoot.updateStacksLock.notify();
@


1.9
log
@Code to prevent card from pile (after using discard) from being played.
@
text
@d38 3
d47 3
d52 3
@


1.8
log
@improved discard logic.
HandAndFoot.debug is now aa BitSet.
@
text
@d41 3
a43 1
            if (GameModel.currentPlayer == Player.Me && 
GameModel.cardsDrawn.get() == 2) {
@


1.7
log
@Added pop up for laydown points.
@
text
@d22 1
a22 1
        if (HandAndFoot.debug) {
d33 1
a33 1
        if (HandAndFoot.debug) {
d53 1
a53 1
        if (HandAndFoot.debug) {
d61 1
a61 1
        if (HandAndFoot.debug) {
@


1.6
log
@added max wait times
@
text
@a11 2
import java.util.logging.Level;
import java.util.logging.Logger;
d52 6
a57 5
//        try {
//            Thread.sleep(200);  // need sleep here to let caller get into its 
synchronized block before us
//        } catch (InterruptedException ex) {
//            Logger.getLogger(UpdateStacks.class.getName()).log(Level.SEVERE, 
null, ex);
//        }
@


1.5
log
@added a couple short sleeps to insure that calling thread gets to synchronized 
block before the Application Thread.
@
text
@d54 5
a58 5
        try {
            Thread.sleep(200);  // need sleep here to let caller get into its 
synchronized block before us
        } catch (InterruptedException ex) {
            Logger.getLogger(UpdateStacks.class.getName()).log(Level.SEVERE, 
null, ex);
        }
@


1.4
log
@more logging
@
text
@d12 2
d35 24
a59 19
            if (HandAndFoot.debug) {
                GameModel.log("in UpdateStacks: myHand size is " + 
GameModel.myHand.size());
            }
            Collections.sort(GameModel.myHand);
            GameModel.myHandPane.getChildren().clear();
            for (int i = 0; i < GameModel.myHand.size(); i++) {
                Card c = GameModel.myHand.get(i);
                CardImageView iv = new CardImageView(c);
                if (GameModel.currentPlayer == Player.Me && 
GameModel.cardsDrawn.get() == 2) {
                    iv.setOnDragDetected(HandAndFoot.MyHandDragDetector);
                } else {
                    iv.setOnDragDetected(null);
                }
                GameModel.myHandPane.getChildren().add(iv);
                iv.setId(c.toString());
                iv.setX(1.0);
                iv.setY(1.0 + HandAndFoot.HAND_VERT_OVERLAP * i);
                GameModel.myHandPane.setMouseTransparent(false);
            }
@


1.3
log
@Added check to eliminate trying to play too many wild cards in 
AutoPlay.playOnExistingCanastas().
Added lock object for UpdateStacks
@
text
@d22 3
d55 3
@


1.2
log
@protected log messages with "If(debug)".
fixed some bugs.
@
text
@d30 1
a30 1
        synchronized (GameModel.root) {
d50 1
a50 1
            GameModel.root.notify();
@


1.1
log
@improved concurrency and locking
@
text
@d31 3
a33 1
            GameModel.log("in UpdateStacks: myHand size is " + 
GameModel.myHand.size());
@

Reply via email to