Welcome to Open Discussion

2010-12-07
2012-12-10
  • Arno Unkrig
    Arno Unkrig
    2010-12-07

    Welcome to Open Discussion

     
  • Arno Unkrig
    Arno Unkrig
    2010-12-24

    Hello, (not yet existent) CVSTOOLS user community,

    CVSTOOLS 0.1.2 is more or less a thin GUI wrapper around the CVS protocol commands. Now
    I am planning to take the concept further and create a "real nice" GUI for all the
    CVS functions that are missing from the ECLIPSE CVS client, and seamlessly integrate
    it with the workbench. Below is a brief concept that outlines how things COULD look.

    But before the work begins, for which contributors are warmly welcome, I want to check
    with you WHICH features you, the community, actually need, or need most urgently, or
    whether anybody needs those extensions of the ECLIPSE CVS client at all.

    Please comment, the more the better!

    CU

    Arno

    TO BE IMPLEMENTED

    Overview of new features

    Feature group: Locking
      UI: Navigator views, resources selected, popup menu, "Team / Lock…":
      UI: Navigator views: Locked files are decorated with a key symbol.
      UI: Navigator views, resources selected, popup menu, "Team / Unlock…":
      UI: Navigator views, resources selected, popup menu, "Team / Set Strict Locking"
      UI: Container's or file's "CVS" properties page: Button "Set strict locking".
      UI: Navigator views, resources selected, popup menu, "Team / Set Non-Strict Locking"
      UI: Container's or file's "CVS" properties page: Button "Set non-strict locking".

    Feature group: Log message setting
      UI: Navigator views, resources selected, popup menu, "Team / Change Revision Comment…"
      UI: "History" view, one revision selected, click the "Comment" cell:

    Feature group: Revision deletion
      UI: Navigator views, popup menu, "Team / Delete Versions…":
      UI: "History" view, one or more revisions selected, popup menu, "Delete…":

    Feature group: Accessing the "state attribute"
      UI: "History" view: Show each revision's state attribute in the new table column "State Attribute".
      UI: "History" view, one revision selected, click the "State Attribute" cell:
      UI: "History" view, one revision selected, popup menu, "Set State Attribute…"
      UI: Navigator views, resources selected, popup menu, "Team / Set Version's State Attribute…":
      UI: "CVS Repositories" views, remote resources selected, popup menu, "Set Version's State Attribute…":
      UI: Navigator views: Resource for which the state attribute of the base revision is not "Exp" are decorated
          with an icon, as configured on the "Team / CVS / Label Decorations" preference page.
      UI: "Team / CVS / Label Decorations" preference page, "Text Decorations" tab, Line "File Decoration:", "Add
          Variables…" dialog: New formats "{state}", "{state:val1?txt1:val2?txt2:txt3}"
      UI: "Team / CVS / Label Decorations" preference page, "Icon Decorations" tab:
          The user can configure up to five mappings of state attribute value patterns to decoration icon (selection of five
          specific adornments).

    Feature group: Descriptive text
      UI: "History" view:
          The DT is shown above the revisions list, iff the "Show descriptive text viewer" option is checked.
      UI: UI: File's "CVS" properties page: Also shows the descriptive text.
      UI: Navigator views: DT appears as a tooltip…
      UI: "Properties" view (NOT the resource's "Properties" DIALOG!): Shows  descriptive text.

    Feature group: HISTORY
      UI: ???

    Feature group: IMPORT
      UI: Resource navigator views, exactly one container selected, popup menu, "Team / Import into a CVS Repository…":
      UI: "CVS Repositories" view, exactly one module selected, popup menu, "Import folder…":
      UI: "CVS Repositories" view, exactly one module selected, popup menu, "Import external folder…":

    Feature group: Tag/Branch deletion
      UI: Navigator views, popup menu, "Delete Version Tag…":
      UI: Navigator views, popup menu, "Delete Branch…":
      UI: "History" view, tag viewer, revision tags and/or branch tags selected, popup menu, "Delete":

    Feature group: Moving branches
      UI: Navigator views, popup menu, "Move Branch…":
      UI: "History" view, tag viewer, exactly one branch selected, popup menu, "Move…":

    Feature group: EXPORT
      UI: "CVS Repositories" view, popup menu, "Export":
      UI: "CVS Repositories" view, popup menu, "Export as…":

    Details of the new features, sorted by CVS command

    Concept: RCS File Locking
    Command: admin -l
    Description:
      Lock the revision with number rev. If a branch is given, lock the latest revision
      on that branch. If rev is omitted, lock the latest revision on the default branch.
      There can be no space between ‘-l’ and its argument.
      This can be used in conjunction with the ‘rcslock.pl’ script in the ‘contrib’
      directory of the cvs source distribution to provide reserved checkouts (where
      only one user can be editing a given file at a time). See the comments in that
      file for details (and see the ‘README’ file in that directory for disclaimers about
      the unsupported nature of contrib). According to comments in that file, locking
      must set to strict (which is the default).
    UI: Navigator views, resources selected, popup menu, "Team / Lock…":
      Have the user specify a branch or revision (default is BASE), then lock that revision of the selected files, and
      all files in the selected containers.
    UI: Navigator views: Locked files are decorated with a key symbol.

    Concept: RCS File Locking
    Command: admin -u
    Description:
      See the option ‘-l’ above, for a discussion of using this option with cvs. Unlock
      the revision with number rev. If a branch is given, unlock the latest revision
      on that branch. If rev is omitted, remove the latest lock held by the caller.
      Normally, only the locker of a revision may unlock it; somebody else unlocking
      a revision breaks the lock. This causes the original locker to be sent a commit
      notification (see Section 10.6.2 , page 69). There can be no
      space between ‘-u’ and its argument.
    UI: Navigator views, resources selected, popup menu, "Team / Unlock…":
      Have the user specify a branch or revision (default is BASE), then unlock that revision of the selected files, and
      all files in the selected containers.

    Concept: RCS File Locking
    Command: admin -L
    Description:
      Set locking to strict. Strict locking means that the owner of an RCS file is not
      exempt from locking for checkin. For use with cvs, strict locking must be set;
      see the discussion under the ‘-l’ option above.
    UI: Navigator views, resources selected, popup menu, "Team / Set Strict Locking"
    UI: Container's or file's "CVS" properties page: Button "Set strict locking".

    Concept: RCS File Locking
    Command: admin -U
    Description:
      Set locking to non-strict. Non-strict locking means that the owner of a file need
      not lock a revision for checkin. For use with cvs, strict locking must be set;
      see the discussion under the ‘-l’ option above.
    UI: Navigator views, resources selected, popup menu, "Team / Set Non-Strict Locking"
    UI: Container's or file's "CVS" properties page: Button "Set non-strict locking".

    Concept: Log Message
    Command: admin -mrev:msg
    Description:
      Replace the log message of revision rev with msg.
    UI: Navigator views, resources selected, popup menu, "Team / Change Revision Comment…"
      Have the user specify a version, show him the original log message (if there is exactly one), allow him to edit
      (possibly clear) the log message, then replace the log message.
    UI: "History" view, one revision selected, click the "Comment" cell:
      Let the user edit the cell contents; when the cell loses focus, have the user confirm the change, then set the log
      message.

    Concept: Revisions
    Command: admin -o range
    Description:
      Delete (outdate) specified range of revisions:
      rev1:rev2
        Between rev1 and rev2, including rev1 and rev2.
      rev1::rev2
        Between rev1 and rev2, excluding rev1 and rev2.
      rev:
        rev and following revisions on the same branch.
      rev::
        After rev on the same branch.
      :rev
        rev and previous revisions on the same branch.
      ::rev
        Before rev on the same branch.
      rev
        Just rev.
    UI: Navigator views, popup menu, "Team / Delete Versions…":
      Have the user specify a revision range (UI TBD), have him confirm a warning, then delete the revisions.
    UI: "History" view, one or more revisions selected, popup menu, "Delete…":
      Have the user confirm a warning, then delete the selected revisions.

    Concept: Revision States
    Command: admin -sstate
    Description:
      Useful with cvs. Set the state attribute of the revision rev to state. If rev is
      a branch number, assume the latest revision on that branch. If rev is omitted,
      assume the latest revision on the default branch. Any identifier is acceptable for
      state. A useful set of states is ‘Exp’ (for experimental), ‘Stab’ (for stable), and
      ‘Rel’ (for released). By default, the state of a new revision is set to ‘Exp’ when
      it is created. The state is visible in the output from cvs log (see Section A.14
      , page 115), and in the ‘$Log$’ and ‘$State$’ keywords (see Chapter 12
      , page 75). Note that cvs uses the dead state for its own
      purposes (see Section 2.2.4 , page 11); to take a file to or from the dead
      state use commands like cvs remove and cvs add (see Chapter 7 [Adding and
      removing], page 53), not cvs admin -s.
    UI: "History" view: Show each revision's state attribute in the new table column "State Attribute".
    UI: "History" view, one revision selected, click the "State Attribute" cell:
      Let the user edit the cell contents; when the cell loses focus, have the user confirm the change, then set the state
      attribute.
    UI: "History" view, one revision selected, popup menu, "Set State Attribute…"
      Show the file's revision's state, have the user change it, set the state attribute.
    UI: Navigator views, resources selected, popup menu, "Team / Set Version's State Attribute…":
      Have the user specify a revision, show the original value of the state attribute (iff there is exactly one), have the
      user change it, then set the state attribut.
    UI: "CVS Repositories" views, remote resources selected, popup menu, "Set Version's State Attribute…":
      Have the user specify a revision, show the original value of the state attribute (iff there is exactly one), have the
      user change it, then set the state attribut.
    UI: Navigator views: Resource for which the state attribute of the base revision is not "Exp" are decorated
      with an icon, as configured on the "Team / CVS / Label Decorations" preference page.
    UI: "Team / CVS / Label Decorations" preference page, "Text Decorations" tab, Line "File Decoration:", "Add
      Variables…" dialog: New formats "{state}", "{state:val1?txt1:val2?txt2:txt3}"
    UI: "Team / CVS / Label Decorations" preference page, "Icon Decorations" tab:
      The user can configure up to five mappings of state attribute value patterns to decoration icon (selection of five
      specific adornments).

    Concept: Descriptive Text
    Command: admin -t
      See "admin -t-string" below.

    Concept: Descriptive Text
    Command: admin -t-string
    Description:
      Useful with cvs. Write descriptive text from the string into the rcs file, deleting the existing text. There can be
      no space between ‘-t’ and its argument. The descriptive text can be seen in the output from ‘cvs log’ (see Section
      A.14 , page 115). There can be no space between ‘-t’ and its argument.
    UI: "History" view:
      The DT is shown above the revisions list, iff the "Show descriptive text viewer" option is checked.
    UI: File's "CVS" properties page: Also shows the descriptive text.
    UI: Navigator views:
      DT appears as a tooltip - sort of a per-file meta information "what this file is good for", "why this file is under
      CVS control", or similar.
      If the file has no DT, some local resource information (file size, modification time, the first few words/lines of
      the contents, or similar), and/or some remote resource information (remote path name, base revision log message,
      brief history, or similar) could be used.
    UI: "Properties" view (NOT the resource's "Properties" DIALOG!):
      Shows not only local resource information, but also CVS remote resource information, including the descriptive text.

    Concept: History File
    Command: cvs history
    Description:
      cvs can keep a history file that tracks each use of the checkout, commit, rtag, update,
      and release commands. You can use history to display this information in various formats.
      Unclear: is HISTORY per-repository or per-module or per-file?
    UI: ???

    Concept: Import
    Command: cvs import
    UI: Resource navigator views, exactly one container selected, popup menu, "Team / Import into a CVS Repository…":
      Have the user select a CVS repository, a module, a vendor branch and optionally release tag(s), then import.
      What about
    UI: "CVS Repositories" view, exactly one module selected, popup menu, "Import folder…":
      Have the user select one container, a vendor branch and optionally release tag(s), then import.
    UI: "CVS Repositories" view, exactly one module selected, popup menu, "Import external folder…":
      Have the user select one directory, a vendor branch and optionally release tag(s), then import.

    Concept: Tags
    Command: cvs tag -d -B
    UI: Navigator views, popup menu, "Delete Version Tag…":
      Have the user select a revision tag, have him confirm a warning, then delete the revision tag.
    UI: Navigator views, popup menu, "Delete Branch…":
      Have the user select a branch tag, have him confirm a warning, then delete the branch tag.
    UI: "History" view, tag viewer, revision tags and/or branch tags selected, popup menu, "Delete":
      Have the user confirm a warning, then delete the tag.

    Concept: Tags
    Command: cvs tag -F -B
    UI: Navigator views, popup menu, "Move Branch…":
      Have the user select a branch tag, then a target revision, then have him confirm a warning, then move the branch.
    UI: "History" view, tag viewer, exactly one branch selected, popup menu, "Move…":
      Have the user select a target revision, have him confirm a warning, then move the branch.

    Concept: Export
    Command: cvs export
    UI: "CVS Repositories" view, popup menu, "Export":
      Proceed in analogy with the "Check out" action.
    UI: "CVS Repositories" view, popup menu, "Export as…":
      Proceed in analogy with the "Check out as…" action.

    NOT IMPLEMENTED

    These concepts / CVS commands have questionable usefulness and should thus not be implemented:

    Concept: Access Lists
    Command: admin -Aoldfile
    Might not work together with cvs. Append the access list of oldfile to the
    access list of the rcs file.

    Concept: Access Lists
    Command: admin -alogins
    Might not work together with cvs. Append the login names appearing in the
    comma-separated list logins to the access list of the rcs file.

    Concept: Access Lists
    Command: admin -e
    Might not work together with cvs. Erase the login names appearing in the
    comma-separated list logins from the access list of the RCS file. If logins is
    omitted, erase the entire access list. There can be no space between ‘-e’ and
    its argument.

    Concept: Default Branches
    Command: admin -b
    Set the default branch to rev. In cvs, you normally do not manipulate default
    branches; sticky tags (see Section 4.9 , page 38) are a better way
    to decide which branch you want to work on. There is one reason to run cvs
    admin -b: to revert to the vendor’s version when using vendor branches (see
    Section 13.3 , page 80). There can be no space between
    ‘-b’ and its argument.

    Concept: Comment Leader
    Command: admin -cstring
    Sets the comment leader to string. The comment leader is not used by current
    versions of cvs or rcs 5.7. Therefore, you can almost surely not worry about
    it. See Chapter 12 , page 75.

    Concept: Interactive mode
    Command: admin -I
    Run interactively, even if the standard input is not a terminal. This option
    does not work with the client/server cvs and is likely to disappear in a future
    release of cvs.

    Concept: RCS File Locking
    Command: release
    This command is meant to safely cancel the effect of ‘cvs checkout’. Since cvs doesn’t
    lock files, it isn’t strictly necessary to use this command. You can always simply delete your
    working directory, if you like; but you risk losing changes you may have forgotten, and you
    leave no trace in the cvs history file (see Section C.9 , page 148) that you’ve
    abandoned your checkout.

    Concept: Tags
    Command: admin -n tag
    Use "tag" command instead.

    Concept: Tags
    Command: admin -N tag[:]
    Use "tag" command instead.