跟进具有 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%
提交消息
我并不执着于使用自动保存功能;只需在标准编译过程中添加自定义命令就足够了。
答案1
答案2
尝试按照说明使用 git这里- 引自:
使用git
而不是。因此您必须将选项->配置 TeXstudio → 命令 → SVN 和 SVNADMIN 中通过-commandssvn
使用的命令更改为。git
svn
git
然后打开 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 上正常工作的时间戳。
- 在 GitHub 上创建一个虚拟存储库,找到“添加 .gitignore”按钮并选择“TeX”。创建存储库后,下载并将 .gitignore 复制到要提交的文件夹。(这可以为您省去很多麻烦,让您弄清楚哪些文件需要保存,哪些不需要。)
- 设置你的 GitHub 帐户以使用 SSH,如果您还没有这样做的话。现在创建一个新的、干净的 GitHub 存储库,无需添加 README 或 .gitingore。(当我尝试上传时,我的存储库中已经存在的文件造成了暂存问题。)
- 跟随说明使用 GitHub 设置您的存储库。使用 SSH 链接进行设置,因为每次您尝试上传提交时,https 都会提示输入用户名和密码。
- 完成此操作后,可以在脚本中自动执行上传提交的过程。以
/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