相关疑难解决方法(0)

使用git-svn处理SVN关键字扩展

我最近询问了Git中的关键字扩展,我愿意接受这个设计,不要在Git中真正支持这个想法.

无论好坏,我正在进行的项目需要SVN关键字扩展,如下所示:

svn propset svn:keywords "Id" expl3.dtx
Run Code Online (Sandbox Code Playgroud)

保持这个字符串是最新的:

$Id: expl3.dtx 803 2008-09-11 14:01:58Z will $
Run Code Online (Sandbox Code Playgroud)

但我非常想用Git来进行版本控制.不幸的是,根据文档,git-svn不支持这一点:

"除了svn:executable之外,我们忽略了所有SVN属性"

但是,通过一些前/后提交挂钩模拟这个关键字的东西似乎并不太棘手.我是第一个想要这个的人吗?有没有人有一些代码来做到这一点?

svn git version-control

42
推荐指数
3
解决办法
2万
查看次数

像Subversion中的Git关键字替换?

我曾经在Subversion/SVN下工作,并立即使用称为关键字替换的好功能.只需输入源文件即可:

/*
 *   $Author: ivanovpv $
 *   $Rev: 42 $
 *   $LastChangedDate: 2012-05-25 21:47:42 +0200 (Fri, 25 May 2012) $
 */
Run Code Online (Sandbox Code Playgroud)

每次Subversion都用实际的关键字替换关键字(Author,Rev,LastChangedDate).

前段时间我被迫转移到Git,只是想知道是否有类似Subversion在Git中的关键字替换?

svn git version-control version-control-keywords

42
推荐指数
3
解决办法
2万
查看次数

git是否有类似`svn propset svn:keywords`或pre-/ post-commit钩子的东西?

浏览git文档时,我看不到任何类似于SVN的提交钩子或"propset"功能的东西,可以说,只要它提交到存储库,就可以更新文件中的版本号或版权声明.

git用户是否希望为这种功能编写外部脚本(这看起来似乎不可能)或者我只是错过了一些明显的东西?

编辑:为了清楚,我更感兴趣,例如,

svn propset svn:keywords "Author Date Id Revision" expl3.dtx
Run Code Online (Sandbox Code Playgroud)

这样的字符串:

$Id: expl3.dtx 780 2008-08-30 12:32:34Z morten $
Run Code Online (Sandbox Code Playgroud)

每当发生提交时,都会与相关信息保持同步.

svn git version-control

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

我可以在.gitignore文件中包含其他.gitignore文件吗?(比如c-like语言中的#include)

我有一些文件vim.gitignore,SVN.gitignoreCVS.gitignore(在我的硬盘上传播).

我可以简单地将这些gitignore文件.gitignore包含在新Git项目的文件中吗?

编辑:我已经有一个全局忽略文件.
我只是想忽略不同类型项目中的不同文件,这可能吗?

git gitignore

19
推荐指数
3
解决办法
6097
查看次数

如何向源添加修订和构建日期?

我有一个GCC项目,并希望自动添加构建日期和修订号(从git)的定义到我的源.最好的方法是什么?

我的目标很简单,能够在启动时做这样的事情:

printf("Test app build on %s, revision %d", BUILD_DATE, REVISION)
Run Code Online (Sandbox Code Playgroud)

对于构建我使用make与简单的Makefile.inc,而不是autoconf或类似的东西.

git gcc revision date build

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

gitignore加载其他gitignores

可能吗?本git update-index --assume-unchanged是无解的,被忽略的文件已被跟踪.创建子模块.

例如

cat .customgitignore(1 | 2 | 3 ......)

i-do-not-need-this.extension
Run Code Online (Sandbox Code Playgroud)

猫.gitignore

basic-stuff.extension
<load> .customgitignore1
<load> .customgitignore2
<load> .customgitignore3
 etc
Run Code Online (Sandbox Code Playgroud)

问题描述感兴趣的人.

我正在创建私人的配置回购.一个分支=一个配置.附加分支作为工作区.我根据需要将其他分支配置与工作空间合并.Branches-configs每个都有自己的.gitignore,只有在合并后才能应用.我试图在gitignore文件中省略冲突.

git gitignore

9
推荐指数
1
解决办法
338
查看次数

在Git分支中保留特定文件的不同内容

我有一个config.php假设在不同分支中的内容不同,例如testingmaster.

我在另一个问题(防止合并来自Git的master中的文件)中询问如何防止此文件合并.

但我想知道,这是正确的方法吗?

我相信这是一个非常常见的用例,在不同的环境中有不同的配置文件,你想要跟踪配置,对吧?

git deployment version-control configuration

8
推荐指数
2
解决办法
2755
查看次数

保持两个Git分支不同的文件

我确定我的Git repo的两个分支应该只在一个文件中有所不同.确保这一点的最简单方法是完成所有工作branch1,并branch2在我切换到它时将其合并(包装到shell脚本中,因此每个交换机只需要一个命令).但是,有没有办法以更少的工作来做到这一点?

git

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

在Git中维护"服务器版本"的唯一方法是什么 - 只更改了配置文件?

我有时使用Codeigniter,在我完成本地站点的开发之后,我需要将文件迁移到服务器./config/需要更改文件夹中的所有文件以匹配服务器设置.对这些更改进行完整的提交是不对的,我只是让Git完全忽略这些文件,还是有办法跟踪这些更改并在适当的时候将它们应用于Git?

php git version-control codeigniter

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

挂钩或不挂钩 - git

我们的定制IDE输出XML文件,其编码使它们看起来像二进制文件.这些文件的差异和合并失败.

我们可以使用该tr命令创建这些文件的ASCII版本.我想进入一个状态,在这些文件提交之前总是自动转换为ascii.

用Git拿起了我的版本控制副本,它全心全意警告我不要使用钩子,除非我真的需要.

我应该为此目的使用钩子吗?或者我可以做其他事情以确保文件在提交之前始终被转换?

Windows XP与msysgit 1.7.4

- = update = -

感谢大家的帮助和耐心.期待这个问题我尝试了以下,但它不起作用:

echo "*.xrp    filter=xrp" > .git/info/attributes
git config --global filter.xrp.clean 'tr -cd '\''\11\12\15\40-\176'\'''
git config --global filter.xrp.smudge cat
git checkout --force
Run Code Online (Sandbox Code Playgroud)

此配置更改后,文件保持不变.即使我删除并重新结账.

tr配置为clean任务的命令确实可以单独工作.证明:

$ head -n 1 cashflow/repo/C_GMM_CashflowRepo.xrp
ÿþ< ! - -   X M L   R e p o s i t o r y   f i l e   1 . 0   - - >

$ tr …
Run Code Online (Sandbox Code Playgroud)

git hook tr gitattributes

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