ホームページ  >  記事  >  SVNの使い方

SVNの使い方

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼オリジナル
2019-08-09 10:05:3836038ブラウズ

SVNの使い方

使用シナリオ:

プロジェクトの特定の部分 (ここではモバイル クライアント プロジェクトを指します) の場合バージョン (バージョン 1.0 など) が開発、テストされ、オンラインで公開されました。次に、新しい要件を受け取ります。新しい要件の開発には、複数のファイルのコードを変更する必要があります。要件が一定期間開発されたとき、突然のリクエストが受信されました。ユーザーまたはテスターからのフィードバックによると、プロジェクトには緊急に修正する必要がある重大なバグがあり、バグ修正後すぐにオンラインにする必要があります。バグを修正するにはどうすればよいですか?現時点では?修理は新たに生じたニーズに基づいていますか?答えはノーで、その理由は次のとおりです: 開発された新しい要件に基づいてバグが修正される場合、新しい要件はまだ開発されておらず、ましてやテストされていません。どうすればすぐにオンラインにできるでしょうか (またはそのままオンラインにできるのでしょうか)できるだけ早く)? ! 3 番目に、新機能の開発とバグ修正のためのコードに同じコード部分との競合が含まれる場合はどうすればよいでしょうか。当然ながら、現在開発されているコードに基づいてバグ修正を実行することはできません。完璧な解決策は、その時点で完成したバージョンでバグ修正を実行することです。この利点は次のとおりです。

1: バグが発生した後修正済み すぐに起動でき、新しい要件が完了またはテストされていないために起動時間が遅れることはありません。

2: バグ修正は最初に起動されたバージョンで修正されており、次のようなリスクがあります。新しいバグの原因となるものは小さいです。要件に基づいて新しいバグを修正する機能に含まれている場合は、新機能によって新しいバグが発生する可能性があります

関連する推奨事項: 「SVN ビデオ チュートリアル

SVN ウェアハウス ディレクトリ構造 リポジトリ:

(1) トランク

(2) タグ

(3) )branch

trunk(幹線|本線)branch(枝)タグ(マーク)

truck(幹線|本線|主分岐): メイン方向の開発に使用されます。新しい機能はモジュールとしてメインラインに配置し、開発完了後、修正が必要な場合はブランチを使用します。

branch (ブランチ): ブランチ開発とメインライン開発を同時に実行できる、つまり並行開発が可能です。ブランチは通常、バグ修正に使用されます。

tag (タグ):タグに使用されます。利用可能なバージョンは、オンラインでリリースされたバージョンまたはテスト中のバージョンとしてマークできます。通常は読み取り専用です。

SVN 固有の操作手順: (TortoiseSVN バージョン: 1.8.8)

1: ウェアハウスを作成します

1。ディレクトリ構造 D:\TortoiseSVN\Repository\Repo-iOS

2 を作成します。ディレクトリ構造

#---> TortoiseSVN


# を右クリックします。 ## ---> ここにリポジトリを作成


---> フォルダ構造の作成 (ファイル構造の作成) ---> Repobrowser の起動 (リポジトリの参照の開始) --- > OK

SVNの使い方

SVNの使い方

SVNの使い方#2: プロジェクトを SVN にアップロードします


デスクトップを右クリックします

---> TortoiseSVN


--->リポブラウザ--> URL: file:///D:/TortoiseSVN/ リポジトリ/Repo-iOS ---> OK


---> トランク フォルダを右クリック

#---> フォルダを追加...

---> SVN にアップロードするプロジェクトの最も外側のディレクトリを選択し、ログを入力します
##---> Ok

SVNの使い方#関連する推奨事項: "

FAQ

" SVNの使い方

3: チェックアウト

1. コンピューター上の任意の場所に作成します。プロジェクト コードが保存されている場所 (例: D:\TortoiseSVN\Repository\Source

2)。コードをこの場所にチェックアウトします。

4:開発サイクル

1. ディレクトリ D:\TortoiseSVN\Repository\Source\trunk\MyAppProject で開発します。トランクのメインライン上にあることに注意してください。 SVNの使い方

プロジェクトは確立されたばかりなので、 , これは新しい機能を開発しているため、メインラインで開発する必要があります

##2. 一定の開発期間を経て、テストを経て、App Store に公開され、Android がアップロードされます次のように起動時に HomeViewController ファイルからコードの一部を抽出します

[objc] view plain copy

私のコードから派生した CODE のコード部分を表示します。コード部分

- (void) viewDidLoad {  
   [super viewDidLoad];  
   // -----------------------------------------  
    int y = 0;  
    int result = 10 / y;     
    NSLog(@"iOS APP 第一阶段开发完成了! 结果是:%ld", result);  
   // End  
}

3. D:\TortoiseSVN\Repository\Source\tags ディレクトリに新しいディレクトリ 1.0 を作成し、そのディレクトリを SVN に送信して、ディレクトリ D:\TortoiseSVN\Repository\Source\trunk\ を右クリックします。 MyAppProject ---> TortoiseSVN---->ブランチ/タグ... -----> パス :/tags/1.0/MyAppProject に移動し、リポジトリ内のヘッド リビジョンを選択します ---> OkSource/ がありますtags/1.0 ディレクトリにコンテンツがありません。更新操作のためにディレクトリを更新する必要があります。更新後、完全なプロジェクトのソース コードがこのディレクトリに保存されていることがわかります (このディレクトリのソース コードは、トランク ディレクトリにあるバージョン 1.0 のコピーとみなすことができます) /tags/1.0/ の viewDidLoad と train/MyAppProject を確認してください。 HomeViewController: /HomeViewController の viewDidLoad コードはまったく同じです。

SVNの使い方

SVNの使い方

4. 開発中の次の段階に向けて新しい要件を開発します

5. ユーザーまたはテスターアプリケーションに重大なバグがあり、すぐに修正してできるだけ早くオンラインにする必要があることを報告します。この時点で、プログラマは、tags/1.0 の下に MyAppProject のブランチを作成する必要があります。操作手順は以下の通りです: Source/tags/1.0/MyAppProject を選択 TortoiseSVN を右クリック ---->ブランチ/タグ... -----> パス:/branches/MyAppProject ---> OK

この時点で D を見てください: \TortoiseSVN\Repository\Source\branches ディレクトリにはまだコンテンツがありません。更新する必要があります。更新後、完全なプロジェクト コードが見つかりました。ディレクトリ

にも表示されます (このコードは、tags/1.0/ MyAppProject のコピーと見なすことができます)。分岐とタグ付けは、[分岐/タグ...] メニューを使用して行われることに注意してください。 To Path のディレクトリが異なります。図は分岐の図を参照してください。ただし、to path の値が異なります。このとき、分岐 /MyAppProject/HomeViewController 内の viewDidLoad コードは、タグ内の viewDidLoad コードとまったく同じです/1.0/MyAppProject/HomeViewController。

6. ワークスペースを切り替え、Xcode|Eclipse 統合ツールを使用して /branches/MyAppProject の下にあるプロジェクトを開き、これに基づいてデバッグしてバグを修正します。プロジェクトはブランチで開く必要があることに注意してください。

7. バグが修正されたら、まず変更したファイルを送信し、クライアント アプリでオンラインにします。オンラインが完了したら、branch/MyAppProject/ を 1.0.1 ディレクトリにタグ付けします (tags/ 1.0.1) (操作手順は手順 3 と同じです。) タグ操作が完了すると、tags/1.0.1/HomeViewController.viewDidLoad とbranch/MyAppProject/HomeViewController.viewDidLoad が完全に一致していることがわかります。 Branch/MyAppProject に新しいタグを追加すると便利です。次回は、これを基に再度バグを修正します。これでバグ修正は完了しました。バグ修正後のコードは次のとおりです:

[objc] view plain copy

私のコード部分から派生した CODE のコード部分を表示

- (void) viewDidLoad {  
   [super viewDidLoad];  
   // -----------------------------------------  
    int y = 10;  
    int result = 10 / y;  
    NSLog(@"iOS APP 第一阶段开发完成了! 结果是:%ld", result);  
   // End  
  
   NSLog(@"1.0 版本闪退bug 已修复, 程序出现除0异常");  
}

8. 次に、ブランチとトランクをマージします。手順は次のとおりです:

ブランチ/MyAppProject を右クリック ------>TortoiseSVN

----> マージ...

---> 範囲をマージしますリビジョン

---->次へ --->マージ元の URL : file:///D:/TortoiseSVN/Repository/Repo-iOS/trunk/MyAppProject

----> 次

- ---> マージ


SVNの使い方

9. トランクとブランチをマージする手順は次のとおりです。

SVNの使い方 右クリック/turnk/MyAppProject ----> マージ... -----> 範囲をマージします。リビジョン -----> 次へ

-----> ; マージ元の URL: file:///D:/TortoiseSVN/Repository/Repo-iOS/branches/MyAppProject


手順は上記と同じですが、マージ元の URL のパスが異なります。マージが完了したら、次のように /trunk/MyAppProject/HomeViewController/viewDidLoad メソッドを確認します。

[objc] view plain copy


CODE から派生したコード部分を my に表示します。コード ピース

- (void) viewDidLoad {  
   [super viewDidLoad];  
   // -----------------------------------------  
    int y = <strong>10</strong>;            // <strong>可以看到branches分支中的代码已经合并到主线上了</strong>  
    int result = 10 / y;  
    NSLog(@"iOS APP 第一阶段开发完成了! 结果是:%ld", result);  
   // End  
  
   NSLog(@"<strong>1.0 版本闪退bug 已修复, 程序出现除0异常</strong>");  
  
   NSLog(@"其他同事在主线trunk中进行新需求开发...");  
   NSLog(@"其他同事在主线trunk中进行新需求开发...");  
}

10。この時点で、マージは完全に完了しました。ブランチ ディレクトリにソース コードを置きたくない場合は、削除しても構いません。その後、バグを修正したプログラマは切り替える必要があります。ワークスペースをメインラインに移動し、Xcode を使用して、trunk/ を再度開きます。 MyAppProject プロジェクトは、まだ完成していない新機能の開発を続けています。 SVN ディレクトリは次のとおりです:

##手順:

1. ブランチ開発とトランク開発は 2 つの完全に独立したプロセスであり、両方を同時に開発できます。 timeSVNの使い方

2. ブランチとトランクの開発は並行して行われるため、現在のプロジェクトによって変更されたファイルを何度でも送信できます

以上がSVNの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:下矢印の打ち方次の記事:下矢印の打ち方