小编And*_*dyL的帖子

如何让我的C代码自动打印出它的Git版本哈希?

有没有一种简单的方法来编写可以访问其Git版本哈希的C代码?

我在C中编写软件以在实验室环境中收集科学数据.我的代码将它收集的数据记录在.yaml文件中以供以后分析.我的实验每天都在变化,我经常需要修改代码.为了跟踪修订,我使用了一个git存储库.

我希望能够在我的.yaml数据文件中包含Git版本哈希作为注释.这样,我可以查看.yaml文件并确切地知道用于生成该文件中显示的数据的代码.有一种简单的方法可以自动执行此操作吗?

c git version-control workflow

76
推荐指数
5
解决办法
4万
查看次数

强制git运行post-receive hook,即使一切都是"最新的"

即使我没有新的提交推送,如何强制在服务器上git运行post-receive挂钩?

背景

我使用git自动将网站部署到服务器.我在服务器的受保护区域的裸回购和post-receive,检查出对某些文件的内容和系统复制到一个钩子public_html文件夹.(受本教程启发)

我厌倦了post-receive在服务器上手动修改钩子,所以我的post-receive钩子现在实际上从repo复制了自己的新版本:

#!/bin/sh

rm -rf ~/../protected/*
GIT_WORK_TREE=~/../protected git checkout -f

# Rewrite over this file with any updates from the post-receive file
cp ~/../protected/post-receive hooks/post-receive

# Delete public_html
# Copy stuff public_html
Run Code Online (Sandbox Code Playgroud)

当然,问题是新的post-receive钩子永远不会运行.一个看似简单的解决方案只是再次推动,但现在一切都已经是最新的.这很烦人,因为每次我更新post-receive钩子时都需要我伪造一个新的提交.有没有办法调用post-receive钩子而不伪造提交或ssh进入?

我尝试了什么

git push
git push -f
Run Code Online (Sandbox Code Playgroud)

git

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

Gitosis替代?

有更容易使用的gitosis的替代品吗?

我目前在我的实验室的Ubuntu服务器上运行gitosis.我们会定期添加新用户和回购.我发现gitosis.conf语法不直观,如果我犯了一个小错误,整个gitosis系统都会失败,例如在SO上看到这个问题. 当gitosis失败时,它也会杀死对包含gitosis.conf... 的git存储库的访问权限......必须有更好的方法.

我考虑过私人GitHub帐户,但还有什么我可以在本地托管吗?

git version-control gitosis

46
推荐指数
5
解决办法
4万
查看次数

下载Amazon EC2 AMI?

我想下载一个公共的Amazon EC2 AMI,比如这个(Ubuntu Lucid),这样我就可以通过编程方式提取其内容.

我该怎么做呢?我怀疑某处有一个S3地址?这个博客文章看起来像曾经描述过这个过程,但链接似乎不再有效.

到目前为止,我只能找到有关如何在AWS中移动EC2实例的解释.我相信清单文件是这个难题的重要组成部分.

amazon-ec2 ec2-ami ec2-api-tools

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

GitHub上的主机可执行文件?

我想分发可执行文件和我的源代码.我的源代码全部托管在GitHub上.是否可以将可执行文件和安装程序添加到我的GitHub项目页面而不将它们添加到我的git存储库?


请注意,由于某种原因,GitHub停止了此功能.请参阅下面的Justin Dearing的回答.

executable github

19
推荐指数
1
解决办法
6372
查看次数

在python中寻找类似rsync的跨平台功能,例如rsync.py

我在python中实现备份脚本.我试图让事情跨平台.我听说有一个基于python的rsync实现:http://pypi.python.org/pypi/rsync.py

但我似乎无法在任何地方找到它.我发现的所有下载链接都已死亡.有谁知道我在哪里可以找到rsync.py程序?

目前我正在使用Windows的unison,但我想尝试rsync.py

python scripting rsync mirroring

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

g ++/minGW可以与Windows SDK一起使用吗?Visual Studio是唯一的选择吗?

Windows XP上的g ++和minGW可以使用Windows SDK吗?

具体来说,为什么g ++无法编译:

#include <stdio.h>
#include <windows.h>

int main(void) {
 printf("!!!Hello World!!!");
 return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

我尝试通过运行编译:

g++ -c -Wall  Test.cpp -IC:/Program\ Files/Microsoft\ Platform\ SDK/Include/
Run Code Online (Sandbox Code Playgroud)

我从一开始就得到了一连串的编译错误

winnt.h:666:2: #error Must define a target architecture.
Run Code Online (Sandbox Code Playgroud)

我已经安装了Windows Server 2003 SP1平台SDK

背景

我正在研究一个大型的实时图像处理软件项目,到目前为止已使用g ++,minGW和gnu make文件(手工编写).对于新功能,我需要与具有专为Visual Studio设计SDK帧抓取器连接.framegrabber SDK依赖于Windows SDK中的头文件.

我需要学习Visual Studio还是有其他方法?

c++ windows mingw g++ visual-studio

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

free()如何知道释放多少内存?

可能重复:
C编程:free如何知道要释放多少?

在C语言编程时,我经常malloc()用来分配内存并free()释放它:

MyObject* objArr= (MyObject*) malloc(sizeof(MyObject)*numberOfObjects);
/** Do stuff **/
free(objArr);
Run Code Online (Sandbox Code Playgroud)

怎么free()知道释放多少内存?是否malloc()在某处创建了一个表来记住指针以及每个指针指向的内存量?

如果是这种情况,free()如果我重命名指针会失败吗?例如:

MyObject* objArr= (MyObject*) malloc(sizeof(MyObject)*numberOfObjects);
MyObject* newPtr= objArr;
free(newPtr); /** Does this fail? **/
Run Code Online (Sandbox Code Playgroud)

如果我增加指针然后运行会发生什么free()?例如:

MyObject* objArr= (MyObject*) malloc(sizeof(MyObject)*numberOfObjects);
newPtr++;
free(newPtr); /** What happens now? **/
Run Code Online (Sandbox Code Playgroud)

它会在原始数组的末尾解除分配一块额外的内存吗?

c malloc

14
推荐指数
1
解决办法
9627
查看次数

在第二个线程OpenCV中显示图像?

我有一个循环从250fps的高速framegrabbger中获取图像.

/** Loop processes 250 video frames per second **/
while(1){
  AcquireFrame();
  DoProcessing();
  TakeAction();
}
Run Code Online (Sandbox Code Playgroud)

同时,我希望用户能够监控正在发生的事情.用户只需要以大约30 fps(或更低)的速度查看图像.如何设置第二个线程,每隔一段时间显示当前帧?

Thread(){
  cvShowImage();
  Wait(30); /** Wait for 30 ms **/
}
Run Code Online (Sandbox Code Playgroud)

我在使用MinGW,gcc和OpenCV 1.1的四核Intel机器的Windows上.主要标准是显示线程必须尽可能少地离开主处理循环.每毫秒都很重要.

我已经尝试使用CreateThread()创建一个新线程cvShowImage()cvWaitKey(),但显然这些功能不是线程安全的.

我正在考虑使用OpenMP,但有些人报告了OpenMP和OpenCV的问题.我也正在考虑尝试使用DirectX directDraw,因为它显然非常快.但它看起来很复杂,显然使用Windows DLL与MinGw有问题.

哪些途径是最好的起点?

c++ multithreading opencv image-processing

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

MATLAB图中不同的左右轴?

我用MATLAB绘制了一条迹线plot().我想添加一个右y轴和一组不同的刻度线(线性缩放).这可能吗?

matlab plot

13
推荐指数
2
解决办法
4万
查看次数