- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这个 python 脚本是迄今为止我想出的最好的。我只是把它拼凑在一起,粗略地使用了第一对夫妇,似乎行为正确,但我忍不住觉得有一种更简单的方法来做到这一点,甚至是内置的东西(尽管我已经搜索过和搜索过)。
感谢您的帮助。
#!/usr/bin/env python import sysimport subprocesss = subprocess.Popen("git svn log --show-commit --oneline".split(" "), stdout=subprocess.PIPE)# Grab the last svn commit's data revision, sha, message = s.stdout.readlines().pop(0).split(" | ")# Grab display of commits since svn rebase s = subprocess.Popen(("git log %s..HEAD --oneline" % sha).split(" "), stdout=subprocess.PIPE)log = s.stdout.read().strip()if len(log.splitlines()) > 0: print ("%d commits ahead of svn. To push them to svn, use 'git svn dcommit'.\n" % len(log.splitlines())) print logelse: print "No local commits that need 'git svn dcommit'"sys.exit(0)
最佳答案
在尝试了 Greg 的建议后,我得到了这个:
git log remotes/trunk.. --oneline
我将使用别名或将其包装在一个小脚本中。
之所以可行而他的建议没有,是因为我的 remopte svn 分支是 remotes/trunk
而不是 git-svn
。我不知道这是否是标准的,特别是因为 Greg 假定 git-svn
。
关于git - 命令(或脚本)类似于 git status 以显示自上次 git svn dcommit 以来的所有本地提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2097737/
dcommit 是否代表分布式提交?还有别的吗? 最佳答案 根据 this link , 它代表 Delta Commit。更具体地说: 要使用的命令是 git svn提交。 d 代表增量(以前有一个
$ git --version git version 1.7.0.3 我克隆了一个 SVN 存储库,并进行了提交: $ git svn clone --stdlayout http://svn/ex
有时,我在 git 中创建本地分支,当我尝试从它们提交 dcommit 时,我想收到一条警告消息。 如何防止自己不小心从本地分支提交? 最佳答案 如果您使用的是 Linux(或 Git bash 或
我正在使用 git-svn 桥接器并重新整理了我的存储库中的大量文件,因此它的组织性更好一些。 我运行 git svn dcommit 将更改放回 SVN 服务器,但进程似乎已挂起。在过去的 45 分
我要将一个 extent git 仓库迁移到一个新的 svn 仓库。我按照以下步骤操作:http://sandrotosi.blogspot.com/2010/02/migrate-git-repo-
当尝试 git svn dcommit 到名称中有空格的存储库时,出现以下错误: Committing to http://svn.kuluvalley.com/Meet the Expert/tru
我对 git-svn 有一个大问题:我需要将我的 git 仓库推送到 svn 服务器,所以我做了以下 svn mkdir --parents http://host/path/to/repo/{tru
我已经使用 Git 和 Git-Svn 一年左右了,不知何故我注意到,在 dcommit 之后,我的提交历史被保留了下来,但时间戳没有。换句话说,每个 git 提交条目都被保留,但在 Svn 中每个提
我正在使用 git-svn 跟踪同一 svn 存储库中的多个分支。通常这工作正常,但今天我做了一些重置和 rebase ,突然我的分支不再提交到正确的远程分支: $ git branch * mast
上周,在周末离开城镇之前,我对本地分支机构进行了一些更改。今天早上我想将所有这些更改提交到公司的 Svn 存储库,但我在一个文件中遇到 merge 冲突: Merge conflict during
在我的公司,我们有一个颠覆服务器,每个人都在他们的机器上使用颠覆。 但是我想使用 git,在本地提交更改,然后在我准备好时“推送”它们。 但是,我无法理解在以下情况下会发生什么。 假设我在本地进行了
我在 git svn dcommit 中犯了一个错误并想撤消提交。 (我实际上试图推送到一个分支,但推送到了主干。)我怎样才能用 git-svn 做到这一点? 最佳答案 Subversion 没有提供
我有一个老板,过去式,他决定将 svn 分支放在与主干相同的文件夹中。通常,这不会对我产生太大影响,但由于我使用的是 git-svn,所以一切进展顺利。在我进行提取后,它为我的根文件夹中的每个分支创建
我们公司使用(并支持!)SVN,但我倾向于使用 git。我想尝试的是拥有 git 存储库——每个项目一个,项目开发人员将能够从该存储库中提取数据(当然,如果他们愿意,也可以相互提取数据)。但我仍然想将
我正在 subversion 存储库中开展一个项目,该项目具有严格的 checkin 政策,其中包括:对主干的每次提交都必须由另一位开发人员审查,并且必须在提交消息中提及。 在使用 git-svn 时
我在使用 git-svn dcommits 时遇到问题,这使得 git 存储库无法跟踪哪些提交是哪些提交。 我尝试确保 git 中的 master 分支始终跟在 SVN 存储库中的 trunk 之后。
这个问题在这里已经有了答案: How to see what has been checked into git, but hasn't been committed to svn via dcom
给定多个未推送的 git 提交,是否有可能 git-svn dcommit 只有其中一个提交? 例如我已经提交了 foo、bar 和 baz,但现在我只想让 bar 最终出现在 svn 仓库中。这可能
在我的计算机在“git svn dcommit”操作过程中断电后,我错过了一些重要的提交,我不确定如何恢复它们。 “git log”不显示提交,有什么想法吗? 最佳答案 Git 会跟踪您对 reflo
我使用 git svn clone 将 SVN 存储库克隆到 git 存储库中.那时,我在该站点上没有用户名,因此没有使用 --username clone 的选项.由于我现在可以使用新用户名提交到
我是一名优秀的程序员,十分优秀!