Accurev CLI - 快速查找是否已登录的方法

Accurev CLI - Quick way to find if already logged in

在 Accurev 中,我可以使用什么快速命令来查明登录会话现在是否处于活动状态?

我正在构建一个应用程序,我在其中使用 accurev login <username> <password> 命令登录到 accurev。

一段时间后,我想验证会话是否仍然可用。基于此,我要么重新登录,要么只使用之前的会话。

我可以用accurev info看到主体,但我觉得还需要一些时间才能return出结果。还有其他更好的方法吗?

请注意,我不想使用 -n

保留登录会话

运行 这个命令:

accurev 展示会议

有两种策略可以处理 AccuRev 命令的会话超时。第一个策略(这是您问题中的策略)是测试您是否已登录。为此, "accurev info" 与任何其他命令一样好。没有比这更快的 AccuRev 命令了。

您可以使用的没有额外命令开销的替代策略是使用代码包装 AccuRev 命令的执行,如果命令失败并显示 "session expired",这些代码将重新登录并重试命令。退出代码 52 是唯一从 AccuRev 命令返回的,表示未登录或会话已过期。作为 windows 示例:

C:\Users\me>accurev show streams
Not authenticated (no session). Please use the 'login' command to authenticate.

C:\Users\me>echo %ERRORLEVEL%
52

有一个特定的命令可以在 AccuRev 中获取您的授权级别。您可以使用 "accurev secinfo" 并且您可以看到三个不同的输出:

  • authuser:您使用具有非空密码的用户名登录。
  • anyuser:您登录时使用的用户名密码为空。
  • notauth:您尚未登录。

输出将是一个单词。对于使用密码登录的用户,您可能会看到 "authuser" 或 "notauth"。对于没有设置密码的用户,您将看到 "anyuser" 或 "notauth"。两种情况下的输出 "notauth" 都会告诉您会话已过期。