获取在 SVN 中提交的文件的作者名称
Get the Author name of file which is being committed in SVN
我试图获取在 SVN 中提交的文件的作者姓名。我知道代码应该写在预提交钩子中。
以下命令用于单独获取已提交文件的详细信息,而不是正在提交的文件。
- SVN 信息"Repos_Path"
- svnlook 作者"repos_path"
我什至无法获取正在提交的文件的修订号。如果我能得到修订号,那么我就能得到作者姓名。
那么,是否有任何可能的方法来获取正在提交的文件的作者姓名或修订号?
首先,你应该阅读SVNBook | Implementing Repository Hooks。该部分应回答您的所有问题。请仔细阅读。
在钩子脚本中,你应该使用svnlook author
命令。预提交挂钩脚本将事务 ID (TXN-NAME) 作为 %2 参数传递,并将存储库路径作为 %1 参数传递。因此,为了捕获即将提交的事务的作者姓名,请使用命令 svnlook author "%1" --transaction %2
.
编辑:
你说 "It is not showing any exception and not giving any output" 这完全是预料之中的,因为事务是在提交过程中生成的,如果提交被接受并成功完成,Subversion将根据此事务生成新的修订版。我指定的命令示例应该在钩子脚本中进行调整和使用。
如果您只想测试命令,请使用 --revision
而不是 --transaction
。例如,运行 命令 svnlook author <REPOS-PATH> --revision REVNUM
。 REVNUM
= 存储库中的任何修订号。
我没有在提交前编写代码,而是在开始提交挂钩中编写了代码。其中,我们可以得到如下四个参数:
[1] REPOS-PATH (the path to this repository)
[2] USER (the authenticated user attempting to commit)
[3] CAPABILITIES (a colon-separated list of capabilities reported
by the client; see note below)
[4] TXN-NAME (the name of the commit txn just created
终于,我得到了这个最简单的答案。
我试图获取在 SVN 中提交的文件的作者姓名。我知道代码应该写在预提交钩子中。
以下命令用于单独获取已提交文件的详细信息,而不是正在提交的文件。
- SVN 信息"Repos_Path"
- svnlook 作者"repos_path"
我什至无法获取正在提交的文件的修订号。如果我能得到修订号,那么我就能得到作者姓名。
那么,是否有任何可能的方法来获取正在提交的文件的作者姓名或修订号?
首先,你应该阅读SVNBook | Implementing Repository Hooks。该部分应回答您的所有问题。请仔细阅读。
在钩子脚本中,你应该使用svnlook author
命令。预提交挂钩脚本将事务 ID (TXN-NAME) 作为 %2 参数传递,并将存储库路径作为 %1 参数传递。因此,为了捕获即将提交的事务的作者姓名,请使用命令 svnlook author "%1" --transaction %2
.
编辑:
你说 "It is not showing any exception and not giving any output" 这完全是预料之中的,因为事务是在提交过程中生成的,如果提交被接受并成功完成,Subversion将根据此事务生成新的修订版。我指定的命令示例应该在钩子脚本中进行调整和使用。
如果您只想测试命令,请使用 --revision
而不是 --transaction
。例如,运行 命令 svnlook author <REPOS-PATH> --revision REVNUM
。 REVNUM
= 存储库中的任何修订号。
我没有在提交前编写代码,而是在开始提交挂钩中编写了代码。其中,我们可以得到如下四个参数:
[1] REPOS-PATH (the path to this repository)
[2] USER (the authenticated user attempting to commit)
[3] CAPABILITIES (a colon-separated list of capabilities reported
by the client; see note below)
[4] TXN-NAME (the name of the commit txn just created
终于,我得到了这个最简单的答案。