Menu

TkCVS crashes in CVS, but not Git

Help
2020-05-22
2025-05-27
  • Matt Thompson

    Matt Thompson - 2020-05-22

    So, as the title says this is weird. I can use tkcvs in a Git repo just fine. But when I try to use it in a CVS repo:

    $ tkcvs cvsxdiff
    Error in startup script: bad option "close": must be cget or configure
        while executing
    "$lc close invoke"
        (procedure "::cvs_branchlog::0::cvs_sort_it_all_out" line 29)
        invoked from within
    "[namespace current]::cvs_sort_it_all_out"
        (procedure "::cvs_branchlog::0::reloadLog" line 80)
        invoked from within
    "[namespace current]::reloadLog"
        (in namespace eval "::cvs_branchlog::0" script line 481)
        invoked from within
    "namespace eval $my_idx {
          set my_idx [uplevel {concat $my_idx}]
          set filename [uplevel {concat $filename}]
          set how [uplevel {concat $h..."
        (procedure "::cvs_branchlog::new" line 6)
        invoked from within
    "::cvs_branchlog::new "CVS,loc" "$file""
        (procedure "cvs_branches" line 14)
        invoked from within
    "cvs_branches [list $lcfile]"
        invoked from within
    "if {[string match {mod*} $cvscfg(startwindow)]} {
      wm withdraw .
      # If we're in a version-controlled directory, open that repository
      if {$insvn} {..."
        (file "/discover/swdev/mathomp4/local-SLES12/bin/tkcvs" line 417)
    

    I'm not sure how to decode that... Any help?

     
  • Matt Thompson

    Matt Thompson - 2020-05-22

    Note that this is with 9.3.2

     
  • Matt Thompson

    Matt Thompson - 2020-05-22

    And more info. If I just do tkcvs I get the list of files. But once I click the "tree" button, kaboom!

     
  • DorothyR

    DorothyR - 2020-05-22

    I'll look at it. Thanks for posting the trace. I don't know what caused the branch browser to fail, but it's obvious that it didn't exit correctly.

     
  • DorothyR

    DorothyR - 2020-06-17

    That was interesting. The source code has been on the tigris.org collabnet ever since I made the Subversion module. Tigris closed down, and it took me all this time to get a dump so I could bring it back to Sourceforge.

    Anyway, I fixed the proximate cause of the crash, which was this, but there was before that some reason why your revision-log file couldn't be processed. If it isn't proprietary, you could find the ,v file in your CVSROOT which corresponds to the file you were trying to look at, and send it to me. so I can evaluate it.

    --- cvs.tcl (revision 960)
    +++ cvs.tcl (working copy)
    @@ -2700,7 +2700,7 @@

         if {[llength [array names revkind]] < 1} {
           cvsfail "Log empty.  Check error status of cvs log command"
    
    • $lc close invoke
    • $lc.close invoke
      return
      }
     
  • Matt Thompson

    Matt Thompson - 2025-05-22

    @dorothyr Zombie thread activate! (Sorry about that.)

    Back in 2020, we sort of "moved full in to Git" and so my support requests (from users) for CVS stopped. However, recently, some old CVS code was revived and people asked about tkcvs. 2020 was a few OSs ago, so I installed tkrev anew (9.5) and decided to try again.

    And so I tried again with the same file as above. Good news, doesn't crash. Bad news, doesn't work. I get a popup saying:

    TkRev Warning!
    Log empty. Check error status of cvs log command
    

    Well, okay:

    > cvs log cvsxdiff
    
    RCS file: /cvsroot/esma/sandbox/dasilva/cvstools/cvsxdiff,v
    Working file: cvsxdiff
    head: 1.10
    branch:
    locks: strict
    access list:
    keyword substitution: kv
    total revisions: 11;    selected revisions: 11
    description:
    ----------------------------
    revision 1.10
    date: 2018/03/09 18:51:47;  author: jstassi;  state: Exp;  lines: +43 -37
    1. Modified to write $tempfile to $TMPDIR, if user does not have write permission on the file's directory
    2. Added -v (verbose) option, to see the commands that are being issued by the script
    3. Minor format modifications
    ----------------------------
    revision 1.9
    date: 2017/10/06 14:02:29;  author: jstassi;  state: Exp;  lines: +2 -2
    1. Add --text flag to xxdiff call
    2. Along unrecognized flags to pass through
    ----------------------------
    revision 1.8
    date: 2008/04/01 15:11:21;  author: stassi;  state: Exp;  lines: +2 -0
    Restored history info to prologue
    ----------------------------
    revision 1.7
    date: 2008/02/14 19:02:13;  author: stassi;  state: Exp;  lines: +19 -20
    rearranged listing of functions
    ----------------------------
    revision 1.6
    date: 2008/02/14 18:50:47;  author: stassi;  state: Exp;  lines: +36 -8
    Modified to look for xdiff utility if xxdiff is not found
    ----------------------------
    revision 1.5
    date: 2008/02/14 00:04:03;  author: stassi;  state: Exp;  lines: +168 -82
    converted from Bourne shell script to perl
    ----------------------------
    revision 1.4
    date: 2008/02/13 15:06:23;  author: dkokron;  state: Exp;  lines: +2 -1
    bug fix
    ----------------------------
    revision 1.3
    date: 2008/02/07 17:02:17;  author: stassi;  state: Exp;  lines: +7 -4
    Added -A option for doing diff against the HEAD
    ----------------------------
    revision 1.2
    date: 2007/05/04 17:25:19;  author: stassi;  state: Exp;  lines: +22 -12
    modified to use a temp file rather than piping directly to the xxdiff utility; this seems to clear up problems
    ----------------------------
    revision 1.1
    date: 2006/12/14 21:06:00;  author: dasilva;  state: Exp;
    branches:  1.1.1;
    Initial revision
    ----------------------------
    revision 1.1.1.1
    date: 2006/12/14 21:06:00;  author: dasilva;  state: Exp;  lines: +0 -0
    my cvs utilities
    =============================================================================
    > echo $?
    0
    

    I mean... no error.

    I'm going to go ask someone who (I think) still has access to the CVS repo to see if he can pull out the ,v file.

     
  • DorothyR

    DorothyR - 2025-05-22

    Zombies! Somehow I'm still here though :-) It would be great to see the ,v file.

     
  • Matt Thompson

    Matt Thompson - 2025-05-22

    @dorothyr Okay. I'll work with the person with access to try and get it.

    Note: I did try the usual "let's see if ChatGPT" can help and I'm not sure our robot friend knows TCL that well. :)

     
  • Matt Thompson

    Matt Thompson - 2025-05-22

    @dorothyr Please find attached the cvsxdiff,v file. Hopefullly it helps you figure out my oddity.

     
  • DorothyR

    DorothyR - 2025-05-23

    Well, the file behaves for me, going back to tkcvs_8.0.4 which is as far back as my laptop will go.

    Have you tried watching what happens in the trace window when you try to diagram the log? Turn on tracing, and just the Commands and Stderr levels might be enough to say what's going on. In this case, I accidentally got the error by re-generating my test repository and forgetting to hand-add the cvsxdiff file.

     
  • DorothyR

    DorothyR - 2025-05-23

    Here's the trace window

     
  • Matt Thompson

    Matt Thompson - 2025-05-23

    Hmm. How do you enter trace mode? I don't see a command line option.

    Also: one thing I forgot. We access our CVS server via ssh (CVS_RSH=ssh) and we have to use a custom port (via .ssh/config). Could that cause issues?

     
    • DorothyR

      DorothyR - 2025-05-23

      Yes, access method can definitely cause problems. The trace should show that, hopefully.

       
    • DorothyR

      DorothyR - 2025-05-23

      In the top menubar, Options -> Tracing On/Off. In recent versions, you then
      check the debug levels you want in the trace window's top bar.

      On Fri, May 23, 2025 at 10:40 AM Matt Thompson theonematt@users.sourceforge.net wrote:

      Hmm. How do you enter trace mode? I don't see a command line option.

      Also: one thing I forgot. We access our CVS server via ssh (CVS_RSH=ssh)
      and we have to use a custom port (via .ssh/config). Could that cause issues?


      TkCVS crashes in CVS, but not Git


      Sent from sourceforge.net because you indicated interest in <
      https://sourceforge.net/p/tkcvs/discussion/9764/>

      To unsubscribe from further messages, please visit <
      https://sourceforge.net/auth/subscriptions/>

      --
      From my gmail account

       
  • Matt Thompson

    Matt Thompson - 2025-05-23

    Okay. Find attached a trace output. I think I did it right? But let me know if not.

    I opened tkrev and pressed the "Branch" button for cvsxdiff. The warning popup came after:

    [::cvs_branchlog::2::cvs_sort_it_all_out] ENTER
    
     
  • DorothyR

    DorothyR - 2025-05-23

    I think you did it right. Was stderr (E) logging on? But anyway cvs gave you the log. I wonder if there was an error status somewhere for some other reason.

    Is this the only file you have a problem with?
    Have you tried checking out a fresh copy of the module and starting over?

     
  • Matt Thompson

    Matt Thompson - 2025-05-27

    @dorothyr Yeah, I had all the boxes checked in the window. And I just tried a fresh checkout with a different file and I get the same issue (see attached screenshot).

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.