Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
复制数百个独立git存储库的状态_Git - Fatal编程技术网

复制数百个独立git存储库的状态

复制数百个独立git存储库的状态,git,Git,如果这个问题还没有解决,我就去解决 我有很多大项目。其中一些是基于回购的,比如AOSP。有些项目使用git子模块。还有许多独立的或附加的存储库,其中包含来自第三方的定制 该部落在一台主机上成功构建、推送和提交 需要自动解决的任务: 收集所有git存储库状态信息:目录、URL、分支、散列 将状态复制/同步到另一台主机 执行所有需要的操作: git克隆--分支。。。对于新模块 更新现有模块的指定分支和哈希 从理论上讲,手动创建和管理额外的repo和git子模块是可能的,但这需要太多的手动工作 编

如果这个问题还没有解决,我就去解决

我有很多大项目。其中一些是基于回购的,比如AOSP。有些项目使用git子模块。还有许多独立的或附加的存储库,其中包含来自第三方的定制

该部落在一台主机上成功构建、推送和提交

需要自动解决的任务:

  • 收集所有git存储库状态信息:目录、URL、分支、散列
  • 将状态复制/同步到另一台主机
  • 执行所有需要的操作:
    • git克隆--分支。。。对于新模块
    • 更新现有模块的指定分支和哈希
  • 从理论上讲,手动创建和管理额外的repo和git子模块是可能的,但这需要太多的手动工作


    编辑:OP说他们想在这里发布自己的答案。请投票重新开放,让他们有机会这样做,并让他们为so社区提供有价值的信息。

    简单解决方案。此bash函数生成“git clone”脚本,该脚本将重新生成本地git结构:

    git-tree-clone()
    {
            find \( -name .git -printf "%h\n" \) | \
                    while read dir; do
                            pushd $dir > /dev/null
                            remote=($(git remote -v))
                            echo "git clone ${remote[1]} $dir;" \
                                  "git -C $dir checkout $(git describe --always)"
                            popd > /dev/null
                    done
    }
    
    限制:跳过分支名称、远程名称,无法更新。

    更高级的解决方案。 150+python脚本的sloc: 该脚本扫描Git树并将状态存储在json文件中。然后,脚本将另一个位置与状态进行比较并将其同步。
    当存储库不存在时,它会执行“克隆”,当存储库存在但未同步时,它会执行“签出”。

    尝试解决一个又一个问题。我想你可以使用一个Shell脚本,但是你必须弄清楚你到底拥有什么和你需要什么。这是一个非常重要的任务,你要求的可能是几天或几周的工作,不幸的是,这里没有人(或任何地方的人)会这样做,除非你付钱给他们。在您进行此项工作时,如果您有具体的编程或技术问题,请回到这里:我们将很乐意为您提供帮助。@joanis,我有一些想法,我将这样做,并在这里发布我的结果。你能不能请你投票表决这个问题并要求释放这个职位?“哥斯达黎加,好吧,我会试试看,重新投票,但我可能不会得到支持,因为我只是一个审稿人,这个问题确实非常广泛。对于重新开放投票队列的评论:请考虑投票重新开放,给他们一个机会来发表他们的答案。”我相信,如果他们自己能为这个问题提供一个很好的答案,那么对于开发者社区的其他人来说,这将是很有价值的,并且与这个站点相关。