使用 TeXstudio 和 git 自动使用当前日期提交

使用 TeXstudio 和 git 自动使用当前日期提交

跟进具有 SVN 或 GIT 连接和自动更新功能的简易 LaTeX 编辑器,我正在尝试建立一种方法,以使用 TeXstudio(在 Windows 上)自动将我的最新更改与当前日期和时间(例如-m "autosave on YYYY-MM-DD_hh:mm")提交到存储库。git

使用“保存后自动签入”功能(见下图)有以下缺点:

  • 存储库混乱(可能由于保存频率较低而导致程度较轻);但是,我知道这是功能的一部分,很难避免
  • 该函数仅提交您刚刚保存的文件(更糟糕的是,只是将当前文件名添加到命令中svn/git)。
    如果修改了另一个文件(如果生成的 PDF 是存储库的一部分,这种情况会经常发生),git则不会提交更改。
    将内置的 svn 命令修改为git -a(提交所有修改的文件)之类的命令会失败,因为文件名附加在命令中,这是git不允许的。
    需要澄清的是,执行的完整命令如下所示:
    git -m "my commit message" currentfile.tex
    我还没有找到一种方法来不是附加文件名。
  • 符号的内置使用%使得无法(至少在 Windows 机器上)添加系统变量,例如%date%提交消息

我并不执着于使用自动保存功能;只需在标准编译过程中添加自定义命令就足够了。

TexStudio SVN 自动保存功能

答案1

我通过以下步骤找到了解决此问题的方法:

  1. 在主*.tex文件目录中创建批处理文件
  2. 打开批处理文件并添加以下行:git commit -am "autosave %date%-%time:~0,8%"。这将提交所做的所有更改(-aswitch)并将提交消息设置为例如autosave 2015-08-17-09:34:05
  3. 在 TeXstudio 中添加一个执行批处理脚本的自定义命令(请参阅下图中的示例) 添加自定义 TeXstudio 命令
  4. 将自定义命令添加到要编译的命令列表中 将自定义命令添加到编译
  5. 在下次编译该文档之后,消息日志中将出现以下消息: 提交日志消息
  6. 此外,可以相应地修改批处理文件,以通过以下方式将更改直接推送到远程存储库git push

答案2

尝试按照说明使用 git这里- 引自:

使用git而不是。因此您必须将选项->配置 TeXstudio → 命令 → SVN 和 SVNADMIN 中通过-commandssvn使用的命令更改为。gitsvngit

在此处输入图片描述

然后打开 bash 并告诉 git 使用命令ci

git config --global alias.ci "commit"

在此处输入图片描述

好了。现在您可以在选项 → 配置 TeXstudio → SVN 中启用自动提交。

请注意,这些自动签入会使您的存储库混乱。在使用 TeXstudio 之前切换到其他分支并在完成后将更改选择/压缩到主分支可能是个好主意。

答案3

当我找到这篇文章时,我正在寻找一种提交到 GitHub 的方法,事实证明这篇文章非常有用。=)。我想我的回答有点晚了,只是详细说明了已经发布的解决方案,超出了 OP 问题的范围。然而,我面临的问题是,自动时间戳在 Linux(Ubuntu 19.10)上无法使用之前发布的解决方案。此外,如果您经常使用脚本,将其添加到“构建和查看”将创建大量提交。所以,我个人得出的结论是,在 TexStudio 中添加一个可用于提交的按钮/热键效果会更好。

我发现这些教程使用命令行将现有项目添加到 GitHub,并且对于Overleaf GIT TexStudio 集成,我用它来设置 TexStudio 和 GitHub。无论如何,我想添加我使用 Git 和 GitHub 设置 TexStudio 的步骤,并添加一个在 Linux 上正常工作的时间戳。

  1. 在 GitHub 上创建一个虚拟存储库,找到“添加 .gitignore”按钮并选择“TeX”。创建存储库后,下载并将 .gitignore 复制到要提交的文件夹。(这可以为您省去很多麻烦,让您弄清楚哪些文件需要保存,哪些不需要。)
  2. 设置你的 GitHub 帐户以使用 SSH,如果您还没有这样做的话。现在创建一个新的、干净的 GitHub 存储库,无需添加 README 或 .gitingore。(当我尝试上传时,我的存储库中已经存在的文件造成了暂存问题。)
  3. 跟随说明使用 GitHub 设置您的存储库。使用 SSH 链接进行设置,因为每次您尝试上传提交时,https 都会提示输入用户名和密码。
  4. 完成此操作后,可以在脚本中自动执行上传提交的过程。以/usr/local/bin超级用户身份在终端中打开文本编辑器。(Ctrl+Alt+T打开终端,然后写入sudo gedit /usr/local/bin/gitcommit.sh)。写下类似以下内容的内容:
    #!/bin/sh

    git add . 
    # Adds all files in the local repository and stages them for commit (except those defined in .gitignore). 

    git commit -m `date "+%Y-%m-%d_%H:%M:%S_%Z"`
    # Commits the tracked changes with the current time in the format "2020-02-15_23:29:56_CET". 

    git push origin master
    # Pushes the changes in your local repository up to the remote repository you specified as the origin
  1. 在 TexStudio 中,在首选项(“配置 TexStudio”,选中高级模式框)下,在构建菜单中添加一个新的用户命令,如图所示: 在此处输入图片描述
  2. 转到工具栏菜单。在“所有菜单>工具>用户”下找到您的命令并添加到“工具”。您还可以转到快捷方式并在那里找到您的命令并添加所需的键盘快捷键。(现在,您可以选择通过添加命令将此命令添加到“构建和查看”或编译器txs:///gitcommit.sh,如@barghest建议的那样。但是,对我来说,这最终导致不合理的提交次数,所以我选择不这样做。)

相关内容