使用subversion创建新存储库的正常工作流程是创建一个新的存储库,检查存储库根目录,创建我的分支标记和主干文件夹,并在主干中放置我的初始文件.然后我提交这个"初始导入",从我的硬盘驱动器中删除签出的回购并执行检查中继.然后我就可以开始工作了.
但是,当处理大量导入时,想想数百个megs,以及异地版本控制托管(基于http)这个初始导入可能需要相当长的时间才能提交.更糟糕的是,在提交后我需要重新检查这个巨大的行李箱.
有没有办法让subversion使用trunk的本地副本而不再检查已经存在的数据?
Git使用SHA1哈希来标识提交对象,根据Git Book,提交对象包含:
令我惊讶的是既需要作者和commiter在提交对象,的确是一个迅速合并问题提交到另一个相同的存储库时,由于提交哈希会改变!
我的观点由GitHub说明,在您的Fork Queue中,一旦您的更改与原始项目合并,您甚至可以找到自己的提交!它通常是一个"metaconflict",因为发起变更的人是相同的,谁提交不应该改变提交的性质 ......
那么,为什么需要呢?是滥用作者和提交者吗?我理解两者的需要,我不明白为什么两者都应该包含在提交哈希中,为什么不在其他地方呢?
可以不同意在不同的repos中提交的相同更改应该被标识为相同,因此从哈希中排除提交者的名称吗?
在我的一个git项目中,我有一个zip文件,它捆绑了一组java库.zip文件是4.5MB,包含11个文件.只有一个包含的库定期更改,我正在处理的库(大约50KB).其他库是静态的.
如果git聪明地只更改zip文件中的这个小变化,并且不会在每次提交时替换整个zip文件,那将是很棒的.否则,我的git存储库将会非常迅速地增长.
当我更新我的库并重新创建zip文件,并提交+推送更改时,我注意到git将对象以<100KB的顺序写入服务器,如"编写对象:100%(58/58),77.64 KiB,完成了." .所以它看起来像git聪明地只发送zip的更改部分,而不是一次又一次发送整个4.5MB的zip文件.
确实是git聪明地处理zip文件的情况吗?
当我使用时将更改提交到分支时,
git commit -a
Run Code Online (Sandbox Code Playgroud)
vim打开,我去插入我的提交消息.我在终端收到这个警告:
W10: Warning: Changing a readonly file
Run Code Online (Sandbox Code Playgroud)
为了继续提交,我必须使用:x!in 强制写入vim,否则,不会遇到任何问题.
至少,这似乎只是一个烦恼.有谁知道发生了什么和/或如何解决这个问题?
我在Windows 7上使用Cygwin.
我正在像这里解释的那样重写git存储库的作者历史记录,但是我的原始结构从
D (user 2) <-- master
|
C (user 2) E (user 1) <-- branch 1
| |
+-------------------------+
|
B (user 1)
|
A (user 1)
Run Code Online (Sandbox Code Playgroud)
进入
D (user 1) <-- master G (user 2, original/refs/heads/master)
| |
C (user 1) F (user 2) E (user 1) <-- branch 1
| | |
+-------------------------+-------------------------+
|
B (user 1)
|
A (user 1)
Run Code Online (Sandbox Code Playgroud)
所以问题是,如何才能完全摆脱F和G?original/refs/heads/master似乎不是一个分支,但我也不完全确定它是什么。
我需要你帮助使用CakePHP中的事务.
我有一个Product模型,其子句包含Price和Property模型(key product_id).
在我的产品模型中,我添加
function begin() {
$db =& ConnectionManager::getDataSource($this->useDbConfig);
$db->begin($this);
}
function commit() {
$db =& ConnectionManager::getDataSource($this->useDbConfig);
$db->commit($this);
}
function rollback()
{
$db =& ConnectionManager::getDataSource($this->useDbConfig);
$db->rollback($this);
}
Run Code Online (Sandbox Code Playgroud)
在ProductController中,我使用save()来保存我的产品,然后使用我的价格和属性.(我只使用save(),而不是saveAll()).
我的代码是:
$this->Product->begin();
$error = false;
if($this->Product->save($data)
{
//my functions and calculations
if(!$this->Price->save($data_one)
{
$error = true;
}
//calculations
if(!$this>Property->save($my_data)
{
$error = true;
}
}
if($error) {
$this->Product->rollback();
}
else
{
$this->Product->commit();
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果我在保存价格或属性行中有错误,则仍会添加产品.我原本以为当我有任何错误时,我的行都不会被添加(即回滚会删除它).
我正在使用CakePHP 2.3.8
我正在使用atlassian的github客户端和sourcetree.我想为每个软件使用2个不同的全局git配置.
目前我必须编辑并检查每个提交我的autor和电子邮件名称.
那么如何为我使用的每个git程序指定一个唯一的配置.
国王问候
我有很多提交,我想要一起压缩成一个提交.当然,我可以代替pick与squash每一个承诺,但我有几百个提交.有没有办法自动执行此操作?
假设我有3次提交:
Added bar.txt (3)
Second Commit (2)
Initial Commit (1)
Run Code Online (Sandbox Code Playgroud)
如何(2)通过使用其SHA ID 更改提交消息?提交尚未推送到远程存储库。
我试过了: git commit --amend -m "Added foo.txt" 8457931
8457931 是SHA ID的前7个数字。
为什么不是重复的原因:与链接的问题不同,我问如何通过使用SHA ID指向我想要更改的提交来更改提交消息。
commit ×10
git ×7
svn ×2
archive ×1
branch ×1
cakephp ×1
config ×1
github ×1
global ×1
readonly ×1
repository ×1
squash ×1
svn-checkout ×1
transactions ×1
zip ×1