【问题标题】:How can I get revisions and git issue linking working in Redmine?如何在 Redmine 中获得修订和 git 问题链接?
【发布时间】:2020-07-21 06:49:25
【问题描述】:

我已经阅读了很多关于如何将 Git 集成到 Redmine 的文章。我已经尝试过 git-hook 插件,但它仍然没有显示与提交相关的修订或问题。这是我现在拥有的:

这两个 cron 作业每 5 分钟运行一次:

*/5 * * * * deploy cd /home/deploy/github_repo/ && ./git_checker.sh
*/5 * * * * deploy cd /home/deploy/apps-available/redmine/ && ./bin/rails runner "Repository.fetch_changesets" -e production

第一个 cron 作业中的 git_checker.sh 文件如下所示:

#! /bin/bash
now="$(date +'%d/%m/%Y %T')"
echo "-------------------------------"
for d in */ ; do
        now="$(date +'%d/%m/%Y %T')"
        cd $d && git fetch origin +refs/heads/*:refs/heads/* && git reset --soft
        cd ..
        echo "Excuted in $d at $now"
echo "-------------------------------"
done >> output_file

输出文件只是检查它是否运行,它确实运行:

Excuted in project1.git/ at 21/07/2020 06:05:01
-------------------------------
Excuted in project2/ at 21/07/2020 06:05:02
-------------------------------
Excuted in project3-backend/ at 21/07/2020 06:05:03
-------------------------------
Excuted in project3-frontend.git/ at 21/07/2020 06:05:03
-------------------------------
Excuted in project4/ at 21/07/2020 06:05:04
-------------------------------

以下是存储库的设置:[![Settings for Repositories][1]][1]

这是我的项目存储库设置的示例:[![Settings for Project][2]][2]

这是我所做的 git 提交的示例。请注意,我在提交消息中包含了 IssueID:

commit ad3cb36ad5478a55a455dfb0d17c127asdf34 (HEAD -> master, origin/master, origin/HEAD)
Author: Jason Shultz <user@gmail.com>
Date:   Mon Jul 20 22:58:30 2020 -0600

    IssueID 1996 testing repository linking

在这里您可以看到项目的存储库。你会看到没有修订。 [![项目存储库][3]][3]

在这里您会看到我更改的文件。它显示修订号,但如果我点击它们,我会得到一个 404。[![已更改的文件][4]][4]

当我单击更改的文件时,“历史记录”选项卡为空。

--- ENVIRONMENT ---

sh: 1: svn: not found
sh: 1: hg: not found
sh: 1: cvs: not found
sh: 1: bzr: not found
Environment:
  Redmine version                4.1.0.devel
  Ruby version                   2.6.5-p114 (2019-10-01) [x86_64-linux]
  Rails version                  5.2.4.2
  Environment                    production
  Database adapter               Mysql2
  Mailer queue                   ActiveJob::QueueAdapters::AsyncAdapter
  Mailer delivery                smtp
SCM:
  Git                            2.17.1
  Filesystem
Redmine plugins:
  additionals                    2.0.23
  redmine_agile                  1.5.3
  redmine_checklists             3.1.16
  redmine_contacts               4.3.0
  redmine_edit_custom_fields     0.0.5
  redmine_github_hook            3.0.1
  redmine_pretend                2.0.1
  redmine_user_import            0.1.0

编辑 2020 年 7 月 21 日晚上 7:49

根据@jkraemer 的问题。我做了一个简单的更改,并在我的提交消息中输入: git commit -m 'IssueID #1996: test test'

我跟踪了我运行的日志文件./bin/rails runner "Repository.fetch_changesets" -e production

日志文件输出:

Creating scope :system. Overwriting existing method Enumeration.system.
Creating scope :sorted. Overwriting existing method Group.sorted.
Creating scope :sorted. Overwriting existing method User.sorted.
Starting Pretend plugin for RedMine
Creating scope :visible. Overwriting existing method Principal.visible.
Creating scope :visible. Overwriting existing method AgileQuery.visible.
Creating scope :visible. Overwriting existing method PeopleQuery.visible.

另外,我注意到 Redmine 中的存储库没有显示任何更新。它仍然显示以前的文件版本。 (我还加倍检查以确保我确实推送了代码。)

编辑 2020 年 7 月 23 日

我更改了调试级别,再次尝试同步,并获得了更令人印象深刻的注销:

Completed 200 OK in 2234ms (Views: 1673.8ms | ActiveRecord: 448.1ms)
   (0.6ms)  SET NAMES utf8,  @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'),  @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
Creating scope :system. Overwriting existing method Enumeration.system.
Creating scope :sorted. Overwriting existing method Group.sorted.
Creating scope :sorted. Overwriting existing method User.sorted.
  AnonymousUser Load (0.7ms)  SELECT  `users`.* FROM `users` WHERE `users`.`type` IN ('AnonymousUser') AND `users`.`lastname` = 'Anonymous' LIMIT 1
Starting Pretend plugin for RedMine
  Setting Load (0.7ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'plugin_additionals' ORDER BY `settings`.`id` DESC LIMIT 1
Creating scope :visible. Overwriting existing method Principal.visible.
Creating scope :visible. Overwriting existing method AgileQuery.visible.
Creating scope :visible. Overwriting existing method PeopleQuery.visible.
Started GET "/github_hook?project_id=intertracker-frontend" for 140.82.115.147 at 2020-07-23 21:54:39 +0000
Processing by GithubHookController#welcome as */*
  Parameters: {"project_id"=>"intertracker-frontend"}
   (0.7ms)  SET NAMES utf8,  @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'),  @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
   (0.6ms)  SELECT MAX(`settings`.`updated_on`) FROM `settings`
  Setting Load (0.6ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'rest_api_enabled' ORDER BY `settings`.`id` DESC LIMIT 1
  AnonymousUser Load (0.6ms)  SELECT  `users`.* FROM `users` WHERE `users`.`type` IN ('AnonymousUser') AND `users`.`lastname` = 'Anonymous' LIMIT 1
  Current user: anonymous
  Setting Load (0.5ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'force_default_language_for_anonymous' ORDER BY `settings`.`id` DESC LIMIT 1
  Setting Load (0.5ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'default_language' ORDER BY `settings`.`id` DESC LIMIT 1
  Rendering plugins/redmine_github_hook/app/views/github_hook/welcome.html.erb within layouts/base
  Rendered plugins/redmine_github_hook/app/views/github_hook/welcome.html.erb within layouts/base (0.7ms)
  Setting Load (0.8ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'app_title' ORDER BY `settings`.`id` DESC LIMIT 1
  Setting Load (0.6ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'ui_theme' ORDER BY `settings`.`id` DESC LIMIT 1
  Setting Load (0.8ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'default_users_hide_mail' ORDER BY `settings`.`id` DESC LIMIT 1
  Setting Load (0.6ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'default_users_time_zone' ORDER BY `settings`.`id` DESC LIMIT 1
  Rendered plugins/redmine_pretend/app/views/user/_unpretend.html.erb (0.5ms)
  Rendered plugins/additionals/app/views/additionals/_html_head.html.slim (10.2ms)
  Setting Load (0.7ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'gravatar_enabled' ORDER BY `settings`.`id` DESC LIMIT 1
  Rendered plugins/additionals/app/views/additionals/_body_top.slim (2.2ms)
  Setting Load (0.7ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'login_required' ORDER BY `settings`.`id` DESC LIMIT 1
  Setting Load (0.6ms)  SELECT  `settings`.* FROM `settings` WHERE `settings`.`name` = 'self_registration' ORDER BY `settings`.`id` DESC LIMIT 1
  Role Load (0.8ms)  SELECT DISTINCT `roles`.* FROM `roles` INNER JOIN `member_roles` ON `member_roles`.`role_id` = `roles`.`id` INNER JOIN `members` ON `members`.`id` = `member_roles`.`member_id` INNER JOIN `projects` ON `projects`.`id` = `members`.`project_id` WHERE (projects.status <> 9) AND `members`.`user_id` = 4
  Role Load (0.5ms)  SELECT  `roles`.* FROM `roles` WHERE `roles`.`builtin` = 2 LIMIT 1
  GroupAnonymous Load (0.6ms)  SELECT  `users`.* FROM `users` WHERE `users`.`type` IN ('GroupAnonymous') ORDER BY id LIMIT 1
   (0.8ms)  SELECT `users`.`id` FROM `users` WHERE `users`.`type` IN ('GroupAnonymous')
   (0.7ms)  SELECT `members`.`user_id`, `role_id`, `members`.`project_id` FROM `members` INNER JOIN `projects` ON `projects`.`id` = `members`.`project_id` INNER JOIN `member_roles` ON `member_roles`.`member_id` = `members`.`id` WHERE (projects.status <> 9) AND (members.user_id = 4 OR (projects.is_public = TRUE AND members.user_id = 2))
  EnabledModule Exists (0.6ms)  SELECT  1 AS one FROM `enabled_modules` WHERE `enabled_modules`.`project_id` IN (SELECT `projects`.`id` FROM `projects` WHERE (((projects.status <> 9) AND ((projects.is_public = TRUE AND projects.id NOT IN (SELECT project_id FROM members WHERE user_id IN (4,2))))))) AND `enabled_modules`.`name` = 'issue_tracking' LIMIT 1
  GroupAnonymous Load (0.6ms)  SELECT  `users`.* FROM `users` WHERE `users`.`type` IN ('GroupAnonymous') ORDER BY id LIMIT 1
  EnabledModule Exists (0.6ms)  SELECT  1 AS one FROM `enabled_modules` WHERE `enabled_modules`.`project_id` IN (SELECT `projects`.`id` FROM `projects` WHERE (((projects.status <> 9) AND ((projects.is_public = TRUE AND projects.id NOT IN (SELECT project_id FROM members WHERE user_id IN (4,2))))))) AND `enabled_modules`.`name` = 'gantt' LIMIT 1
  GroupAnonymous Load (0.6ms)  SELECT  `users`.* FROM `users` WHERE `users`.`type` IN ('GroupAnonymous') ORDER BY id LIMIT 1
  EnabledModule Exists (0.6ms)  SELECT  1 AS one FROM `enabled_modules` WHERE `enabled_modules`.`project_id` IN (SELECT `projects`.`id` FROM `projects` WHERE (((projects.status <> 9) AND ((projects.is_public = TRUE AND projects.id NOT IN (SELECT project_id FROM members WHERE user_id IN (4,2))))))) AND `enabled_modules`.`name` = 'calendar' LIMIT 1
  GroupAnonymous Load (0.6ms)  SELECT  `users`.* FROM `users` WHERE `users`.`type` IN ('GroupAnonymous') ORDER BY id LIMIT 1
  EnabledModule Exists (0.6ms)  SELECT  1 AS one FROM `enabled_modules` WHERE `enabled_modules`.`project_id` IN (SELECT `projects`.`id` FROM `projects` WHERE (((projects.status <> 9) AND ((projects.is_public = TRUE AND projects.id NOT IN (SELECT project_id FROM members WHERE user_id IN (4,2))))))) AND `enabled_modules`.`name` = 'news' LIMIT 1
  Rendered plugins/additionals/app/views/additionals/_content.html.slim (2.5ms)
  Rendered plugins/additionals/app/views/additionals/_body_bottom.html.slim (2.7ms)
  Rendered plugins/redmine_people/app/views/common/_people_select2_data.html.erb (0.7ms)
  Rendered plugins/redmine_people/app/views/common/_layout_bottom.html.erb (6.8ms)
Completed 200 OK in 1048ms (Views: 170.6ms | ActiveRecord: 23.8ms)

编辑 2020 年 7 月 24 日

这是 irb 输出:

irb(main):031:0> Repository.find(45).fetch_changesets
  Repository Load (0.7ms)  SELECT  `repositories`.* FROM `repositories` WHERE `repositories`.`id` = 45 LIMIT 1
Shelling out: 'git' '--git-dir' '/home/deploy/github_repo/intertracker-frontend.git' '-c' 'core.quotepath=false' '-c' 'log.decorate=no' 'branch' '--no-color' '--verbose' '--no-abbrev'
  Changeset Exists (0.6ms)  SELECT  1 AS one FROM `changesets` WHERE `changesets`.`repository_id` = 45 LIMIT 1
   (0.4ms)  BEGIN
  Repository Exists (0.5ms)  SELECT  1 AS one FROM `repositories` WHERE `repositories`.`identifier` = BINARY 'intertracker-frontend' AND `repositories`.`id` != 45 AND `repositories`.`project_id` = 117 LIMIT 1
   (0.4ms)  COMMIT
Shelling out: 'git' '--git-dir' '/home/deploy/github_repo/intertracker-frontend.git' '-c' 'core.quotepath=false' '-c' 'log.decorate=no' 'log' '--no-color' '--encoding=UTF-8' '--raw' '--date=iso' '--pretty=fuller' '--parents' '--stdin' '--no-renames' '--reverse'
=> nil

这是相应的尾日志:

Repository Load (0.7ms)  SELECT  `repositories`.* FROM `repositories` WHERE `repositories`.`id` = 45 LIMIT 1
Shelling out: 'git' '--git-dir' '/home/deploy/github_repo/intertracker-frontend.git' '-c' 'core.quotepath=false' '-c' 'log.decorate=no' 'branch' '--no-color' '--verbose' '--no-abbrev'
  Changeset Exists (0.6ms)  SELECT  1 AS one FROM `changesets` WHERE `changesets`.`repository_id` = 45 LIMIT 1
   (0.4ms)  BEGIN
  Repository Exists (0.5ms)  SELECT  1 AS one FROM `repositories` WHERE `repositories`.`identifier` = BINARY 'intertracker-frontend' AND `repositories`.`id` != 45 AND `repositories`.`project_id` = 117 LIMIT 1
   (0.4ms)  COMMIT
Shelling out: 'git' '--git-dir' '/home/deploy/github_repo/intertracker-frontend.git' '-c' 'core.quotepath=false' '-c' 'log.decorate=no' 'log' '--no-color' '--encoding=UTF-8' '--raw' '--date=iso' '--pretty=fuller' '--parents' '--stdin' '--no-renames' '--reverse'

它实际上并没有从 github 存储库中获取更改。如果我手动运行:

git fetch origin +refs/heads/*:refs/heads/* &amp;&amp; git reset --soft

然后它会拉取代码,然后再次运行上述命令以获取变更集:

Repository Load (0.8ms)  SELECT  `repositories`.* FROM `repositories` WHERE `repositories`.`id` = 45 LIMIT 1
Shelling out: 'git' '--git-dir' '/home/deploy/github_repo/intertracker-frontend.git' '-c' 'core.quotepath=false' '-c' 'log.decorate=no' 'branch' '--no-color' '--verbose' '--no-abbrev'
  Changeset Exists (0.6ms)  SELECT  1 AS one FROM `changesets` WHERE `changesets`.`repository_id` = 45 LIMIT 1
   (0.4ms)  BEGIN
  Repository Exists (0.5ms)  SELECT  1 AS one FROM `repositories` WHERE `repositories`.`identifier` = BINARY 'intertracker-frontend' AND `repositories`.`id` != 45 AND `repositories`.`project_id` = 117 LIMIT 1
   (0.4ms)  COMMIT
Shelling out: 'git' '--git-dir' '/home/deploy/github_repo/intertracker-frontend.git' '-c' 'core.quotepath=false' '-c' 'log.decorate=no' 'log' '--no-color' '--encoding=UTF-8' '--raw' '--date=iso' '--pretty=fuller' '--parents' '--stdin' '--no-renames' '--reverse'
=> nil
irb(main):085:0> Repository.find(45).fetch_changesets
  Repository Load (0.9ms)  SELECT  `repositories`.* FROM `repositories` WHERE `repositories`.`id` = 45 LIMIT 1
Shelling out: 'git' '--git-dir' '/home/deploy/github_repo/intertracker-frontend.git' '-c' 'core.quotepath=false' '-c' 'log.decorate=no' 'branch' '--no-color' '--verbose' '--no-abbrev'
  Changeset Exists (0.6ms)  SELECT  1 AS one FROM `changesets` WHERE `changesets`.`repository_id` = 45 LIMIT 1
   (0.5ms)  BEGIN
  Repository Exists (0.5ms)  SELECT  1 AS one FROM `repositories` WHERE `repositories`.`identifier` = BINARY 'intertracker-frontend' AND `repositories`.`id` != 45 AND `repositories`.`project_id` = 117 LIMIT 1
   (0.4ms)  COMMIT
Shelling out: 'git' '--git-dir' '/home/deploy/github_repo/intertracker-frontend.git' '-c' 'core.quotepath=false' '-c' 'log.decorate=no' 'log' '--no-color' '--encoding=UTF-8' '--raw' '--date=iso' '--pretty=fuller' '--parents' '--stdin' '--no-renames' '--reverse'
=> nil

我已经安装了 github-hook 插件。它是使用 post commit hook 来拉取代码等的。如果我将代码推送到 repo,我确实看到了 hook 触发器,并且会发生以下输出:

Started GET "/github_hook?project_id=intertracker-frontend" for 140.82.115.155 at 2020-07-24 21:35:12 +0000
Processing by GithubHookController#welcome as */*
  Parameters: {"project_id"=>"intertracker-frontend"}
   (0.6ms)  SELECT MAX(`settings`.`updated_on`) FROM `settings`
  AnonymousUser Load (0.6ms)  SELECT  `users`.* FROM `users` WHERE `users`.`type` IN ('AnonymousUser') AND `users`.`lastname` = 'Anonymous' LIMIT 1
  Current user: anonymous
  Rendering plugins/redmine_github_hook/app/views/github_hook/welcome.html.erb within layouts/base
  Rendered plugins/redmine_github_hook/app/views/github_hook/welcome.html.erb within layouts/base (0.2ms)
  Rendered plugins/redmine_pretend/app/views/user/_unpretend.html.erb (0.1ms)
  Rendered plugins/additionals/app/views/additionals/_html_head.html.slim (0.6ms)
  Rendered plugins/additionals/app/views/additionals/_body_top.slim (0.1ms)
  Role Load (1.0ms)  SELECT DISTINCT `roles`.* FROM `roles` INNER JOIN `member_roles` ON `member_roles`.`role_id` = `roles`.`id` INNER JOIN `members` ON `members`.`id` = `member_roles`.`member_id` INNER JOIN `projects` ON `projects`.`id` = `members`.`project_id` WHERE (projects.status <> 9) AND `members`.`user_id` = 4
  Role Load (0.5ms)  SELECT  `roles`.* FROM `roles` WHERE `roles`.`builtin` = 2 LIMIT 1
  GroupAnonymous Load (0.6ms)  SELECT  `users`.* FROM `users` WHERE `users`.`type` IN ('GroupAnonymous') ORDER BY id LIMIT 1
   (0.9ms)  SELECT `users`.`id` FROM `users` WHERE `users`.`type` IN ('GroupAnonymous')
   (0.5ms)  SELECT `members`.`user_id`, `role_id`, `members`.`project_id` FROM `members` INNER JOIN `projects` ON `projects`.`id` = `members`.`project_id` INNER JOIN `member_roles` ON `member_roles`.`member_id` = `members`.`id` WHERE (projects.status <> 9) AND (members.user_id = 4 OR (projects.is_public = TRUE AND members.user_id = 2))
  EnabledModule Exists (0.6ms)  SELECT  1 AS one FROM `enabled_modules` WHERE `enabled_modules`.`project_id` IN (SELECT `projects`.`id` FROM `projects` WHERE (((projects.status <> 9) AND ((projects.is_public = TRUE AND projects.id NOT IN (SELECT project_id FROM members WHERE user_id IN (4,2))))))) AND `enabled_modules`.`name` = 'issue_tracking' LIMIT 1
  CACHE GroupAnonymous Load (0.0ms)  SELECT  `users`.* FROM `users` WHERE `users`.`type` IN ('GroupAnonymous') ORDER BY id LIMIT 1
  EnabledModule Exists (0.5ms)  SELECT  1 AS one FROM `enabled_modules` WHERE `enabled_modules`.`project_id` IN (SELECT `projects`.`id` FROM `projects` WHERE (((projects.status <> 9) AND ((projects.is_public = TRUE AND projects.id NOT IN (SELECT project_id FROM members WHERE user_id IN (4,2))))))) AND `enabled_modules`.`name` = 'gantt' LIMIT 1
  CACHE GroupAnonymous Load (0.0ms)  SELECT  `users`.* FROM `users` WHERE `users`.`type` IN ('GroupAnonymous') ORDER BY id LIMIT 1
  EnabledModule Exists (0.5ms)  SELECT  1 AS one FROM `enabled_modules` WHERE `enabled_modules`.`project_id` IN (SELECT `projects`.`id` FROM `projects` WHERE (((projects.status <> 9) AND ((projects.is_public = TRUE AND projects.id NOT IN (SELECT project_id FROM members WHERE user_id IN (4,2))))))) AND `enabled_modules`.`name` = 'calendar' LIMIT 1
  CACHE GroupAnonymous Load (0.0ms)  SELECT  `users`.* FROM `users` WHERE `users`.`type` IN ('GroupAnonymous') ORDER BY id LIMIT 1
  EnabledModule Exists (0.6ms)  SELECT  1 AS one FROM `enabled_modules` WHERE `enabled_modules`.`project_id` IN (SELECT `projects`.`id` FROM `projects` WHERE (((projects.status <> 9) AND ((projects.is_public = TRUE AND projects.id NOT IN (SELECT project_id FROM members WHERE user_id IN (4,2))))))) AND `enabled_modules`.`name` = 'news' LIMIT 1
  Rendered plugins/additionals/app/views/additionals/_content.html.slim (0.2ms)
  Rendered plugins/additionals/app/views/additionals/_body_bottom.html.slim (0.1ms)
  Rendered plugins/redmine_people/app/views/common/_people_select2_data.html.erb (0.3ms)
  Rendered plugins/redmine_people/app/views/common/_layout_bottom.html.erb (0.5ms)
Completed 200 OK in 23ms (Views: 13.3ms | ActiveRecord: 7.0ms)

但如果我去项目中的 repo,它不会更新。 :( [1]:https://i.stack.imgur.com/y87jo.png [2]:https://i.stack.imgur.com/CWaIv.png [3]:https://i.stack.imgur.com/1uqnM.png [4]:https://i.stack.imgur.com/SO2m7.png

编辑 08/02/2020

寻找 NGINX:

~$ ps aux | grep nginx
root      1115  0.0  0.4 230692 19236 ?        Ss   Jul01   0:04 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data 17569  0.0  0.4 232988 18636 ?        S    Aug02   0:00 nginx: worker process
www-data 17570  0.0  0.4 232988 18360 ?        S    Aug02   0:00 nginx: worker process
deploy   31000  0.0  0.0  14852  1116 pts/1    S+   04:03   0:00 grep --color=auto nginx

寻找红宝石:

~$ ps aux | grep ruby
deploy   30982  0.0  0.0  14852  1096 pts/1    S+   04:03   0:00 grep --color=auto ruby
as root: # ps aux|grep ruby
root     31890  0.0  0.0  14852  1012 pts/1    S+   04:24   0:00 grep --color=auto ruby

【问题讨论】:

  • 一个愚蠢的提示:网址缩短器可能很有用,但它隐藏了原始网址,并将其变成您必须信任缩短器的链接(我以前从未听说过nimb.ws)跨度>
  • 尽可能地,帖子应该是自包含的。请使用与您的问题相关的内容更新您的问题(如果可能:不是完整转储)。
  • 您必须在问题 ID 前加上 # 前缀,以便 Redmine 识别它。但由于它还没有显示任何修订,这似乎不是你唯一的问题。为了更容易调试,请关闭您的 cron 作业,调用 fetch_changesets 以获取单个存储库,然后查看 Redmine 日志文件。
  • @jkraemer 谢谢你的建议,我按照你的要求做了。我用结果更新了帖子。谢谢! :)
  • 嗯,就日志输出而言,这并不多:)请在config/environments/production.rb中添加config.log_level = :debug,然后再试一次。

标签: git github redmine


【解决方案1】:

由于 cmets 的长度和格式限制,现在将其作为答案...

权限

常见问题,但如果 repo 不可读左右,我会预料到某处会出现错误消息。无论如何,请检查您的 nginx 配置,了解您的 Redmine 配置为运行的用户。您应该为您的 cronjobs 使用相同的用户(因此将 deploy 更改为 nginx 或您的实际用户)。您手动尝试的任何操作也应该以该用户身份完成。整个存储库也应归该用户所有。

这是最简单的设置,当然您可以对不同的用户和组等感兴趣,但是一旦您完成了简单的案例工作,请先保存。

使用裸仓库

Redmine docs on the topic 非常清楚您必须使用 bare 存储库。您的回购似乎不是这种情况。我不确定,但它可能会有所作为。

插件等

要减少未知数,请在本地计算机上使用香草 Redmine 尝试上述所有方法,然后从那里继续。有时插件会改变工作方式,有时插件会引入错误。从本地裸 git repo 导入变更集是一项核心功能,不需要任何额外的插件。一旦你开始工作,你可以开始左右添加东西,钩子,插件,cron作业,以自动化创建裸存储库的过程,保持更新,导入更改集。但这一切都必须等到您完成基本的手动步骤。

【讨论】:

  • 我觉得我正在这样做,但是?我有一个每 5 分钟运行一次的 shell 脚本,并进入每个项目 repo 文件夹并执行 `git fetch origin +refs/heads/*:refs/heads/* && git reset --soft` 我进入了其中一个 repos,删除文件夹,添加回来,确保 nginx 用户是所有者,并且 repo 显示,但修订仍然没有。
  • 我注意到在那个文档中,它没有提到运行这个命令:cd /home/deploy/apps-available/redmine/ &amp;&amp; ./bin/rails runner "Repository.fetch_changesets" -e production,我应该停止这样做吗?
  • 它没有提到它,因为默认情况下,Fetch commits automatically 设置是打开的,每次您在浏览器中访问存储库页面时它都会获取变更集。关闭该设置并通过 cron 作业异步执行它只是一种性能优化。因此,虽然您不必停止这样做,但它也应该在没有 if Fetch commits automaticallyAdministration / 设置 / 存储库
  • 您如何运行您的Redmine?您确定nginx 用户是正确的吗?以 root 身份尝试ps aux|grep ruby,尝试识别运行 redmine 的 ruby​​ 进程并查看它们以什么用户身份运行。
  • 好的,@jkraemer 我用回复更新了问题。感谢您提供有关 Fetching 的信息,非常感谢!:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-06
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多