我一直在 Git 中完成所有工作并推送到 GitHub。我对软件和网站都非常满意,此时我不想改变我的工作习惯。
我的博士导师要求所有学生将他们的工作保存在大学托管的 SVN 存储库中。我找到了大量关于将现有 SVN 存储库下 pull 到 Git 的文档和教程,但没有找到关于将 Git 存储库推送到新的 SVN 存储库的内容。我希望一定有某种方法可以通过结合使用 git-svn 和新分支以及 rebase 和所有这些美妙的术语来做到这一点,但我是 Git 新手,对它们中的任何一个都没有信心。
然后我只想运行几个命令来在我选择时将提交推送到该 SVN 存储库。我希望继续使用 Git,并让 SVN 存储库镜像 Git 中的内容。
如果这有什么不同的话,我将是唯一一个致力于 SVN 的人。
最佳答案
我也需要这个,在 Bombe 的回答的帮助下 + 一些摆弄,我让它工作了。这是食谱:
1. cd /path/to/git/localrepo
2. svn mkdir --parents protocol:///path/to/repo/PROJECT/trunk -m "Importing git repo"
3. git svn init protocol:///path/to/repo/PROJECT -s
4. git svn fetch
5. git rebase origin/trunk
5.1. git status
5.2. git add (conflicted-files)
5.3. git rebase --continue
5.4. (repeat 5.1.)
6. git svn dcommit
在#3 之后你会收到这样一条神秘的信息:
Using higher level of URL:
protocol:///path/to/repo/PROJECT => protocol:///path/to/repo
忽略它。
当您运行 #5 时,您可能会遇到冲突。通过添加状态为“unmerged”的文件并恢复 rebase 来解决这些问题。最终,你会完成的;然后使用 dcommit 同步回 SVN 存储库。就这样。
您现在可以使用以下命令从 SVN 同步到 Git:
git svn fetch
git rebase trunk
要从 Git 同步到 SVN,请使用:
git svn dcommit
在应用到实时存储库之前,您可能想在本地副本上尝试一下。您可以将 Git 存储库复制到一个临时位置;只需使用 cp -r,因为所有数据都在存储库本身中。然后,您可以使用以下方法设置基于文件的测试存储库:
svnadmin create /home/name/tmp/test-repo
然后检查工作副本,使用:
svn co file:///home/name/tmp/test-repo svn-working-copy
这将允许您在进行任何持久更改之前先尝试一下。
git svn init如果你不小心用错误的 URL 运行 git svn init,而且你不够聪明,没有备份你的工作(别问......),你不能只需再次运行相同的命令。但是,您可以通过发出以下命令来撤消更改:
rm -rf .git/svn
edit .git/config
并删除 [svn-remote "svn"] 部分。
然后您可以重新运行 git svn init。
关于svn - 将现有的 Git 存储库推送到 SVN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/661018/
如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象
文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g
有谁知道在Heroku的Bamboo堆栈上启动并运行使用DataMapper的Sinatra应用程序所需的魔法咒语?Bamboo堆栈不包含任何预安装的系统gem,无论我尝试使用何种gem组合,我都会不断收到此错误:undefinedmethod`auto_upgrade!'forDataMapper:Module(NoMethodError)这是我的.gems文件中的内容:sinatrapgdatamapperdo_postgresdm-postgres-adapter这些是我将应用程序推送到Heroku时安装的依赖项:----->Herokureceivingpush----->Si
关于如何使用git设置类似Dropbox的服务,您有什么建议吗?您认为git是解决此问题的合适工具吗?我在考虑使用git+rush解决方案,你觉得怎么样? 最佳答案 检查这个开源项目:https://github.com/hbons/SparkleShare来自项目的自述文件:Howdoesitwork?SparkleSharecreatesaspecialfolderonyourcomputer.Youcanaddremotelyhostedfolders(or"projects")tothisfolder.Theseprojec
我编写了一个非常简单的“部署”脚本,作为我的裸git存储库中的post-updateHook运行。变量如下livedomain=~/mydomain.comstagingdomain=~/stage.mydomain.comgitrepolocation=~/git.mydomain.com/thisrepo.git(bare)core=~/git.mydomain.com/thisrepo.gitcore==addedremoteintoeachlive&stagegitslive和stage都初始化了gitrepos(非裸),我已经将我的裸仓库作为远程添加到它们中的每一个(名为co
我正在创建一个新的Rails3.1应用程序。我希望这个新应用程序重用现有数据库(由以前的Rails2应用程序创建)。我创建了新的应用程序定义模型,它重用了数据库中的一些现有数据。在开发和测试阶段,一切正常,因为它在干净的表数据库上运行,但是当尝试部署到生产环境时,我收到如下消息:PGError:ERROR:column"email"ofrelation"users"alreadyexists***[err::localhost]:ALTERTABLE"users"ADDCOLUMN"email"charactervarying(255)DEFAULT''NOTNULL但是我在迁移中有这
我正在安装gitlabhq,并且在Gemfile中有对某些资源的“git://...”的引用。但是,我在公司防火墙后面,所以我必须使用http://。我可以手动编辑Gemfile,但我想知道是否有另一种方法告诉bundler使用http://作为git存储库? 最佳答案 您可以通过运行gitconfig--globalurl."https://".insteadOfgit://或通过将以下内容添加到~/.gitconfig:[url"https://"]insteadOf=git://
我遇到了RVM的问题,所以我卸载并重新安装了它。事实是我实际上尝试过rbenv,但这对我来说没有用,所以我试图让rvm重新启动并运行-而不必安装重复版本的Ruby。我至少安装了1个现有版本的Ruby:ruby--versionruby1.8.7(2011-12-28patchlevel357)[universal-darwin11.0]但是当我执行rvmlist时,我得到一个空白列表:bash-3.2$rvmlistrvmrubies#Defaultrubynotset.Try'rvmaliascreatedefault'.#=>-current#=*-current&&default
我想知道我应该如何着手这个项目。我需要每周向人们发送一次电子邮件。但是,这必须在每周的特定时间自动生成并发送。编码有多难?我需要知道是否有任何书籍可以提供帮助,或者你们中的任何人是否可以指导我。它必须使用rubyonrails进行编程。因此有一个网络服务和数据库集成。干杯 最佳答案 为什么这么复杂?您只需安排工作。您可以使用Delayed::Job例如。Delayed::Job让您可以使用run_at符号在特定时间安排作业,如下所示:Delayed::Job.enqueue(SendEmailJob.new(...),:run_
在我的Rails项目中,我有三个模型:classRecipe:recipe_categorizationsaccepts_nested_attributes_for:recipe_categories,allow_destroy::trueendclassCategory:recipe_categorizationsendclassRecipeCategorization通过这个简单的has_many:through设置,我怎样才能像这样获取给定的食谱:@recipe=Recipe.first并根据现有类别向此食谱添加类别,并在相应类别上对其进行更新。所以:@category=#Exi