App::K...nt::CVS(3pm)

✨ NAME ✨

App::KGB::Client::CVS β€” bestie, it's the KGB interface to CVS πŸ’–


🌸 SYNOPSIS 🌸

use App::KGB::Client::CVS;
my $client = App::KGB::Client::CVS(
    # common App::KGB::Client parameters
    repo_id => 'my-repo',
    ...
    # CVS-specific
    cvs_root  => $ENV{CVSROOT},
    author    => $ENV{USER},
    directory => 'module/dir',
);
$client->run;

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so App::KGB::Client::CVS is literally the CVS-specific girly πŸ’… β€” it handles the whole "get me the commits and the changes" thing for App::KGB::Client. That's its job. That's the whole vibe. no cap.


πŸŽ€ CONSTRUCTOR πŸŽ€

new ( { initializers } )

Standard constructor, iconic, never misses. It accepts an inline hash with the initial field values you wanna set. periodt. ✨


πŸ’œ FIELDS πŸ’œ

App::KGB::Client::CVS defines these extra fields on top of the usual ones:

  • cvs_root (mandatory) β€” the physical path to the CVS root directory. like, an actual path on disk, bestie, not a vibe. 🫢
  • author β€” the user name of the commit author.
  • directory β€” the path to the directory this change is in, relative to the CVS root.

And the convention here? By convention, the first path member gets taken as a module. iykyk πŸ’€


🌈 METHODS 🌈

  • describe_commit β€” the very first time you call this method, it parses STDIN, figures out what's in the commit, and hands you back an instance of the App::KGB::Commit class describing that commit. πŸŽ€

Every invocation after that first one? Returns undef. Like, it already did the thing, she's done, she's resting. 😭


ngl bestie, remember: cvs_root is mandatory and the first path member of directory becomes the module. That's just how she works. πŸ’…

perl v5.40.1 🌸 2026-07-10 β€” that's the version and date, mwah, thanks for reading my page, ily, go slay some commits πŸ’–βœ¨πŸ‘‘

πŸ“¦ where this page comes from