我试图将一个文件(称为foo.txt)从一个存储库移动到另一个(不相关的)存储库,保留其历史记录.ebneter的问题显示了如何为子目录执行此操作.taw的问题有一些提示和建议,但不是一步一步的程序.jkeating的问题看起来很有希望,但对我没有用.针对此特定用例,谷歌搜索空洞.我正在寻找的是一系列明确的命令来实现这一目标.
我开始遵循的命令序列是:
$ git clone source-repo/ source-repo-copy
$ cd source-repo-copy
$ git filter-branch --tree-filter 'test ! "$@" = "foo.txt" && \
git rm --cached --ignore-unmatch $@ || true' --prune-empty
Run Code Online (Sandbox Code Playgroud)
我的filter命令的逻辑是git rm所有不是foo.txt的文件.我添加了|| true命令以强制它具有零返回值以满足filter-branch.
我的目的是将source-repo-copy设置为我的目标存储库(target-repo)的远程,并假设git filter-branch过滤掉除foo.txt以外的所有内容,将source-repo-copy合并到target-repo中.不幸的是,这个git filter-branch命令似乎没有效果.它运行时没有任何错误,似乎在源代码库中通过600多次提交进行了研究,但是当它完成时,git log源代码复制中的和文件看起来是一样的.不应该丢失除foo.txt之外的所有文件,并且所有未触及它的提交都会从日志中删除吗?
此时我不知道该怎么办.有什么建议?
我想在新创建的Android应用程序中格式化代码.
我以这种方式搞砸了代码:
private static final
int AUTO_HIDE_DELAY_MILLIS
= 3000;
Run Code Online (Sandbox Code Playgroud)
我想格式化它,ctrl+alt+L但它不修复代码.我使用Windows 8.1.
我正在尝试使用用C编写的Python库,它没有任何文档.我想使用内省来至少看看模块中有哪些方法和类.有人有一个函数或库我可以用来列出模块中的函数(带参数列表)和类(带方法和成员变量)吗?
我正在使用cpp-netlib在异步模式下使用C++在Ubuntu 14.04上开发Web服务.该服务需要响应消息正文中通过HTTP POST发送的数据.当接收大于1K的输入时,我观察到性能不佳,我想解决这个问题.
如果数据相对较小,小于1K,则服务器几乎立即接收数据.如果数据大于1K,则在将第一个实际数据块呈现给回调之前首次调用异步读回调函数后,大约会有一秒钟的延迟.在最初的延迟之后,随后的块几乎立即到达.
我怎样才能消除这种延迟?是使用curl发布测试数据的工件吗?如何轻松测试curl发布数据的性能?
你可以找到在github上演示问题的最小源代码.这是我用来将数据发布到服务器的命令:
rcook$ curl -d @AsyncDaemon.h http://localhost:8787/foo
Run Code Online (Sandbox Code Playgroud)
以下是其输出示例(带注释):
rcook$ ./async_daemon
1431387368.321863: AsyncDaemon constructor
1431387368.322446: receive thread beginning
*** It's waiting for a connection here.
1431387371.536191: begin transaction 0 on thread 24050
1431387371.536237: transaction 0 constructor
1431387371.536273: received 1206 byte request for /foo from 127.0.0.1:49402
1431387371.536312: invoked asynchronous read
1431387371.536321: end transaction handler
1431387371.536335: begin asynchronous read callback on thread 24050
1431387371.536348: read 0 bytes
1431387371.536386: invoked asynchronous read
1431387371.536394: end asynchronous read callback
*** …Run Code Online (Sandbox Code Playgroud) 我的C++程序当前通过pipe(popen("curl ..."))调用curl 将JSON数据文件POST到Web服务器.由于需要将JSON保存到文件并在子shell中调用curl,因此这具有明显的性能限制.我想重写它以使用libcurl,但我不清楚如何做到这一点.我传递给的命令行popen()是:
curl -s -S -D /dev/null -H "Content-Type: application/json" -X POST -d file-of-json http://server/handler.php
Run Code Online (Sandbox Code Playgroud)
在我需要发布之前,JSON数据(大约3K)位于RAM中的缓冲区中.我期望使用libcurl的CURLOPT_READFUNCTION将缓冲区假脱机到libcurl(但我对其他选项开放),并使用CURLOPT_WRITEFUNCTION来捕获服务器的回复,类似于我从popen的管道读取回复的方式.
所有这一切似乎都很简单.令人困惑的是我需要CURLOPT_POST,CURLOPT_HTTPPOST,CURLOPT_POSTFIELDS,CURLOPT_HTTPHEADER的哪种组合.我已经阅读了很多关于这个主题的帖子(没有双关语),没有一个与我的场景完全匹配.有什么建议?
[请注意,我通常没有任何URL编码的表单字段,如下所示:http://server/handler.php?I = do¬ = use&these = in&my = query]
我正在开发一个用C++编写的系统,在Linux上的Xeon上运行,需要尽可能快地运行.在RAM中保存的大型数据结构(基本上是结构数组)超过10 GB,并且需要定期访问它的元素.我想修改数据结构以尽可能地使用系统的缓存机制.
目前,访问主要在整个结构中随机进行,每次读取1-4个32位的整数.在同一个地方发生另一次读取需要很长时间,因此缓存没有任何好处.
现在我知道当你从RAM中的随机位置读取一个字节时,不仅仅是那个字节被带入缓存.我的问题是引入了多少字节?是16,32,64,4096吗?这被称为缓存线吗?
我希望重新设计数据结构,以最大限度地减少随机RAM访问,并使用缓存而不是缓存.知道在随机访问中将多少字节拉入缓存将告知我所做的设计选择.
更新(2014年10月): 在我提出上述问题后不久,该项目被搁置.它已经恢复并基于下面答案中的建议,我进行了一些围绕RAM访问的实验,因为似乎TLB捶打可能正在发生.我修改了程序以运行大页面(2MB而不是标准的4KB),观察到一个小的加速,大约2.5%.我找到了关于在这里和这里设置大页面的很好的信息.
我正在开发一个涉及多个C++程序的项目,每个程序都接受输入并生成输出.数据(数十到数百个字节,可能是JSON)基本上(一个方向)流动(异步),并且程序需要位于LAN周围的不同Linux计算机上.
由于数据只在一个方向流动,我不相信我需要像HTTP那样的事务模型.我认为消息队列模型(fire and forget)最有意义,应该简化每个程序的逻辑.仅注意消息已成功添加到远程队列可能就足够了.
我正在寻找的是如何在C或C++中实现此消息队列的建议.似乎POSIX和Boost消息队列仅限于单个主机,而RabbitMQ似乎具有较弱的C/C++支持,并且MQ4CPP似乎对业务关键角色的支持不足.我错了吗?那么Boost ASIO或ACE或自己编写套接字代码怎么样?我期待着你的建议.
我有两个与在Linux系统上为logrotate工具开发配置文件有关的问题.
当我对文件进行更改时/etc/logrotate.d,是否需要以某种方式通知logrotate以便它能够识别并响应更改?它最终似乎注意到了自身的变化,但是在测试日志轮换规范时,强制logrotate对新配置文件做出反应会很有用,而不是等待下一次运行.这可能吗?
如果我的logrotate配置文件出现问题,是否报告错误,如果是,我在哪里可以找到它们?
此外,如果在开发logrotate配置文件时有常见的开发模式和技术,请分享它们.如果重要,我使用的是Ubuntu 10.04.
我正在制作一款具有可破坏地形的游戏(如游戏中的蠕虫或焦土),并通过蒙版使用像素完美碰撞检测.
关卡是单个表面,它现在的工作原理是我每帧都创建一个副本,绘制需要在其上绘制的所有精灵,然后将可见区域blit到显示表面.
有没有办法避免每帧复制整个水平表面,仍然能够使用pygame中找到的像素完美碰撞工具?
我首先尝试在水平面上进行blitting,然后在屏幕上对每个精灵进行blitting(由相机调整的blit坐标,除了坐标为静态的玩家角色),但在这种情况下,碰撞检测系统崩溃了,我可以'似乎能够解决它.
我设法使其工作方式如下:绘制精灵时,我将他们的游戏世界坐标(基本上是相对于水平位图原点的坐标)转换为屏幕坐标(相对于相机的坐标,这是当前的水平的可见区域).
在碰撞检测阶段I期间,使用相对于水平面定位的坐标和边界框; 就像上面一样.问题是相机的位置是否与玩家的位置绑定,而该位置不是也不应该是静态值(我真的不确定我是如何设法在这么长时间内没有意识到的).
虽然这解决了我的问题,但下面的答案更全面地介绍了如何在这种情况下提高性能.我也愿意接受使用其他库的建议,这些库可以使考验变得更容易或更快.我已经考虑过pyglet和rabbyt,但看起来存在同样的问题.
我正在使用Tornado开发一个简单的Web应用程序.它提供一些动态文件和一些静态文件.动态的不是问题,但我在提供静态文件时遇到问题.我想要做的是在访问/foo.json URL时提供文件/path/to/foo.json.
请注意,/ path/to/foo.json位于文档根目录之外.在Apache中我只想设置一个Alias.有了龙卷风,我有:
app = tornado.web.Application([
(r'/dynamic\.html', MyService, dict(param = 12345)),
(r'/(foo\.json)', tornado.web.StaticFileHandler, {'path': '/path/to/foo.json'})
])
Run Code Online (Sandbox Code Playgroud)
我添加了正则表达式组运算符()以满足Tornado,否则会抛出异常.但现在,当我访问/foo.json时,我得到一个404:File Not Found.
测试显示Tornado正在尝试使用作为根目录提供的路径来附加foo.json,这意味着如果它位于/path/to/foo.json/foo.json,则可以找到我的文件.关闭,但不完全.
我想我可以简单地将我的路径简化为"/ path/to",这将触发/foo.json URL上的/path/to/foo.json的获取,但这迫使我在URL中使用相同的名称就像在文件系统上一样.我怎样才能做一个简单,随意的文件映射URL?
我已经做了一些研究,阅读tornado.web.Application和tornado.web.StaticFilehandler的文档,以及其他 一些SO 问题.没有什么是我的用例.
c++ ×3
python ×3
c ×2
linux ×2
performance ×2
unix ×2
caching ×1
cpp-netlib ×1
curl ×1
git ×1
http ×1
http-post ×1
json ×1
libcurl ×1
logrotate ×1
memory ×1
post ×1
pygame ×1
pyglet ×1
python-2.5 ×1
python-2.7 ×1
static-files ×1
testing ×1
tornado ×1