zoukankan      html  css  js  c++  java
  • TortoiseSvn问题研究(一)

    问题描述

    今天在工作中遇到一个SVN方面的问题,牵扯出使用SVN这一段时间的一系列问题。

    具体来说,是这样的:

    • 上周五有上线分支,自己的分支需要merge;
    • 很多项目小组都在开发这个项目,再往前好像也有上线;
    • 按照之前merge方法merge之后出现DAO文件找不到错误;
    • 翻看当前主干版本,这些DAO文件都存在;
    • 翻看历史记录,发现这些DAO文件是在两个版本之前上线的。

    问题分析

    到这里,基本上可以怀疑问题原因了,就是自己merge的方法有问题。

    那么,再看下merge的步骤

    • 右键分支,选择merge
    • 默认第一个,下一步;
    • 默认(specific version),选择最新版本;
    • test merge,没有太大问题,merge

    那么,再迟钝,也可以发现,问题一定存在于有选项的地方了吧。

    也就是说,merge的选择,这里应该选择第一个,merge all versions


    问题延伸

    其实我能在这个地方犯这么一个错误,也是挺神奇的。

    想之前,在进来选择的地方更容易出错

    这里之前,包括今天,都没有搞清楚过,查了下,引用记录如下

    SVN merge 三种方式
    转载

    1、Merge a range of revisions

    2、Reintegrate a branch

    3、Merge two different trees

    ——————————————————————————————————————————————————————

    以下是转载自chunanyong的一篇关于svn分支合并类型的文章,出处:http://chunanyong.iteye.com/blog/697255

    合并的工作是把主干或者分支上合并范围内的所有改动列出,并对比当前工作副本的内容,由合并者手工修改冲突,然后提交到服务器的相应目录里。如果当前工作副本是主干,则合并的范围是分支上的改动,如果工作副本是分支的,则合并范围是主干上的改动,并且一定要注意,合并的起始位置URL一定要和当前的工作副本的URL是相同的。

    一、合并一个范围的版本
    此类型应用最为广泛,主要是把分支中的修改合并到主干上来。在主干上点击右键选择合并,然后选择合并类型:合并一个范围的版本。
    合并的源URL填写的是要合并的分支的URL,待合并的版本范围如果为空,则指的是合并分支上所有的版本,即自从分支创建以来到分支当前最新版本的所有演变。如果只是选择其中一个版本,或者几个版本,那么就表示只是将制定的n个版本的变化合并到主干上。如果只是选择其中一个版本,那么表示只是选择那个版本的修改,之前或之后的修改将不被采纳。

    二、复兴合并
    复兴合并可以理解为是第一种合并类型的一种特例,在复兴合并中,主干可以理解为是自从开创分支之后没有任何修改,而分支是经过修改的,而且合并中分支是没有版本选择的。经过复兴合并,分支中所有的修改都会合并到主干中,合并的结果将使得分支和主干一模一样,从而可以删除分支。

    三、合并两个不同的树
    此类型与前两种类型不同,第一种类型可以选择分支合并的版本,主干不能选择版本;第二种类型是主干和分支都不能选择合并的版本;而这种类型则是无论是主干还是分支都可以选择合并的版本,即可以选择过去的一个主干版本与分支的某个版本进行合并。合并的时候以选择的分支版本为主,如果选择的主干版本与分支版本有不同的地方,合并时主干部分将被放弃。
    起始URL:选择主干目录的URL(应当和当前工作副本的URL一致,这个是所谓的合并点)
    结束URL:选择要合并的分支的URL。
    起始和结束的版本:一般起始版本应当找到最后一次同步时的版本,如果从没有同步过(第一次合并),则选择创建分支时的版本,结束版本一般是最新版本,如果你不想将某些内容合并进主干的话,也可以选择一个合并点。

    其实,如图所示,这个merge,from可以是主干,也可以是branch的。

    虽然我没去查官方文档,不过日常是这么用的。。

    (不得不吐槽,即使英文还可以,碰上太多专业情况,还是懵逼)

    另外,一般而言的SVN是有三个分支的:trunk,branch,tags

    之前对tags一直懵懵懂懂,今天稍微看了下

    • tags和branch都是分支;
    • branch倾向于可以修改的分支;
    • tags一般是不能去动的分支,好比打包,或者就是打包;
    • trunk是主干,一般而言不直接做修改,而是通过branch开发后合上去
  • 相关阅读:
    质量数据统计报表
    Gitlab CR
    搭建openstf平台的那些事
    wrk 使用记录及踩过的坑
    无题,表达一下心情
    theano中对图像进行convolution 运算
    4d tensor
    theano中的concolutional_mlp.py学习
    theano中的logisticregression代码学习
    利用Anaconda安装python后,如何安装opencv-python
  • 原文地址:https://www.cnblogs.com/andy1202go/p/7979741.html
Copyright © 2011-2022 走看看