小编Ste*_*lly的帖子

Jenkins git Windows主/ Linux从属路径

我在Windows上有一个运行某些Windows版本的Jenkins主服务器。

git客户端插件已配置为git的固定路径为“ C:\ Program Files(x86)\ git \ bin \ git.exe”

我现在已经创建了一个Linux从属服务器,但是当我在该服务器上运行作业时,它正在尝试运行命令“ C:\ Program Files(x86)\ git \ bin \ git.exe init”,并且显然失败了。

有一个简单的解决方案吗?我想我已经通过在Windows master上修改PATH来解决此问题,并且git的固定路径现在只是“ git”,因此可以在两个操作系统上使用。

是为詹金斯解决此问题的“正确”方法,还是有另一种/更好的方法来解决此问题?

谢谢。

linux windows git jenkins

7
推荐指数
2
解决办法
1万
查看次数

存储与 git 存储库相关的元数据的地方?

We have an in-house tool that can group together multiple repositories - a bit like git submodules, but works with other repository types - CVS, hg, etc.

It currently uses a single 'meta' repository to store information about all our repositories - dev branches, release tags, etc. But I'm wondering if it's possible to distribute this and put the information into the repositories themselves?

My first thought for a git repository is to use a branch called, say, 'metadata' which …

git metadata

6
推荐指数
0
解决办法
1452
查看次数

我可以在没有Ruby的情况下生成Rails SECRET_KEY_BASE吗?

我想知道是否有一种方法可以在没有安装Ruby的情况下生成Rails SECRET_KEY_BASE变量?我所看到的所有答案都指向在Ruby中使用SecureRandom库.

这很好,但我的情况有点鸡蛋和鸡蛋 - 我想用我的Rails应用程序构建Docker镜像之前用SECRET_KEY_BASE生成一个文件.容器运行的基本VM没有安装Ruby.

这是Ubuntu 16.04服务器,我尽可能少安装(最好只是Docker!).它安装了Perl和OpenSSL.可以使用其中任何一个吗?

secret-key ruby-on-rails-5

6
推荐指数
1
解决办法
2355
查看次数

crond 的“docker stop”超时

我试图理解为什么我的 Docker 容器没有正常停止并且只是超时。容器正在运行crond

FROM alpine:latest

ADD crontab /etc/crontabs/root
RUN chmod 0644 /etc/crontabs/root

CMD ["crond", "-f"]
Run Code Online (Sandbox Code Playgroud)

crontab文件是:

* * * * * echo 'Working'
# this empty line required by cron
Run Code Online (Sandbox Code Playgroud)

内置docker build . -t periodic:latest

并运行docker run --rm --name periodic periodic:latest

这一切都很好,但是当我尝试docker stop periodic从另一个终端进行操作时,它不会优雅地停止,超时会突然终止。就像crond没有响应 SIGTERM 一样。

crond肯定是PID 1

/ # ps
PID   USER     TIME  COMMAND
    1 root      0:00 crond -f
    6 root      0:00 ash
   11 root      0:00 ps
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做: …

cron docker

6
推荐指数
1
解决办法
1292
查看次数

CreateTimerQueueTimer回调和竞争条件

我正在我的应用程序中使用计时器队列,并将指针传递给我自己的一个C++ Timer对象作为回调的"参数"(在CreateTimerQueueTimer中).然后我在回调中的对象上调用虚方法.

Timer对象的析构函数将确保使用DeleteTimerQueueTimer()取消计时器.

static void callback( PVOID param, BOOLEAN timerOrWaitFired )
{
    Timer* timer = reinterpret_cast< Timer* >( param );
    timer->TimedOut();
}

class Timer
{
public:
   Timer();

   virtual ~Timer()
   {
       ::DeleteTimerQueueTimer( handle );
   }

   void Start( double period )
   {
      ::CreateTimerQueueTimer( &handle, ..., &callback, this, ... );
   }

   virtual void TimedOut() = 0;

   ...
};
Run Code Online (Sandbox Code Playgroud)

但是,有一个微妙的竞争条件,如果已经调用了回调,但是在调用TimedOut()之前销毁了计时器对象,则应用程序崩溃,因为回调调用不存在的对象上的虚方法.或者更糟糕的是,它被删除了.

我确实有互斥锁来控制多线程调用,但我仍然遇到问题.

使用对象指针作为回调参数真的是个好主意吗?由于不保证线程之间的同步,它对我来说闻起来很糟糕.

有更好的解决方案吗?其他人做什么?

发生的一件事是保留一组指向每个Timer实例的指针(添加构造函数,在析构函数中删除).但我认为这不会起作用,因为如果从中派生出Timer,我们只会从基类析构函数中的集合中删除指针; 如果我们已经开始销毁派生对象,则已经完成了损坏.

干杯.

c++ winapi timer

5
推荐指数
1
解决办法
6662
查看次数

Python - 捕获Popen stdout并在控制台上显示?

我想从一个长期运行的进程中捕获stdout,subprocess.Popen(...)因此我将其stdout=PIPE用作arg.

但是,因为它是一个长时间运行的进程,我还想将输出发送到控制台(好像我没有管道它)给脚本用户一个它仍在工作的想法.

这是可能吗?

干杯.

python pipe popen

5
推荐指数
2
解决办法
1万
查看次数

gitweb RSS feed 也可以显示标签吗?

我的远程存储库经常使用 gitweb RSS 提要,但它只显示我的提交。

有没有办法在提要中创建标签对象?

(我目前使用 1.6.3.3 作为远程存储库。)

干杯。

git rss gitweb

5
推荐指数
1
解决办法
895
查看次数

防止“git push origin -prune”?

才险些避免了一场国际事件。我们的一位开发人员执行了git push origin --prune(而不是git fetch origin --prune!)

这导致远程存储库上的所有远程分支都被删除(好吧,除了当前分支之外的所有分支)。

幸运的是,另一个开发人员的克隆尚未获取,因此我可以重新推送所有远程分支。

这对我来说似乎相当危险;有没有办法阻止这种情况,或者至少让它变得更难?

git git-push

5
推荐指数
1
解决办法
712
查看次数

git合并冲突说删除了,但事实并非如此

我正在尝试解决git merge(git版本2.9)中的冲突 - 冲突是建议删除"其他"分支中的文件,但事实并非如此.这是一个(相当)简短的可重复配方:

cd /some/new/folder/somewhere
git init

echo 'a on master' > a
git add a
git commit -m 'add a on master'

mkdir f
git mv a f/
git commit -m 'move a to f on master'

git checkout -b hotfix HEAD^

echo 'new content a on hotfix' > a
mkdir f
git add a
git mv a f/
git commit -m 'move a to f on hotfix with different content'

git checkout master
git merge …
Run Code Online (Sandbox Code Playgroud)

git merge-conflict-resolution

5
推荐指数
1
解决办法
642
查看次数

从 vscode C++ 调试步骤中排除文件?

是否可以在 vscode C++ 调试器中排除某些文件?我正在使用 gdb 进行调试。

我的可执行文件是在 Docker 容器中远程构建和运行的,VSCode 的主机环境没有 Docker 环境的标准头文件。

特别是,它试图进入 STL 代码,无论如何我宁愿排除它。

谢谢

c++ debugging gdb visual-studio-code

5
推荐指数
2
解决办法
2005
查看次数