2016-10-18 5 views
0

に移行しました。担当開発者がバージョン管理を使わなかったレガシー環境で作業を始めました。 よく書かれたファイルを昇順で保存することによって、ちょっと自分のバージョン管理を使いました。例についてはFlatfiles(libary.01.pm、libary.02.pm ...)からGIT

最初のバージョン:Libary.01.pm

セカンドバージョン:Libary.02.pm

は、現在すべてが入れ子にするCAのフォルダに保存されます。 > parser.pm(ファイル)

- - >設定(ディレクトリ)

----> general.pm(ファイル

- (ディレクトリ)

> LIBSサブディレクトリ内)

などです。 今私たちの目標に。私たちは "バージョン管理"をgitに持っていきたいと思っています。私たちの現在のアイデアは、既存のバージョンとサブディレクトリ構造をとり、それぞれのバージョンに対してコミットすることです。 git-fast-importを試しましたが、私たちは既存のフォルダ構造を取ることができませんでした。しかし、これはとにかく間違ったアプローチです。

このアイデアはどう思いますか?

+0

"責任ある開発者は、使用のバージョンをdidntの" - 責任ある開発者は、常にバージョン管理を使用しています。 – Axel

+0

私はあなたに完全に同意しています...まあまあ、ちょっと彼ら自身の「バージョン管理」を使っています。 – nmanh

答えて

2

私はファイル構造を読み、git bash(これもperlに付属)で再生できる新しいscripitを書くためにperlを使います。ここで

は、私が唯一のディレクトリ構造として、古いファイル構造とgitの構造で始まる

を働くだろうスクリプトの例です。私のgitフォルダから、findコマンドを使って古い構造のすべてのファイルを見つけ、perlスクリプトでそれらのファイルを繰り返します。

[email protected] /cygdrive/c/work/temp/git 
$ find ../old/ 
../old/ 
../old/libs 
../old/libs/config 
../old/libs/config/config_file_01.pm 
../old/libs/config/config_file_02.pm 
../old/libs/config/config_file_03.pm 
../old/libs/lib_file.01.pm 
../old/libs/lib_file.02.pm 
../old/libs/lib_file.03.pm 

そして、perlスクリプトを使用して:

次のリプレイのスクリプトを作成する
#!/usr/bin/perl 

use strict; 
use English; 

print "hello greg\n"; 

undef $/; 

my $content = <ARGV>; 
my @files = split(/\n/,$content); 
for my $tag ('01','02','03') { 
     for my $file (@files) { 
       if ($file =~ /$tag/) { 
         my $newFile = $file; 
         $newFile =~ s/_$tag//sg; 
         $newFile =~ s/..\/old\///sg; 
         print "cp$_ $file $newFile\n"; 
       } 
     } 
     print "git add --all\n"; 
     print "git commit -a -m \"commint from tag $tag\"\n"; 
} 

[email protected] /cygdrive/c/work/temp/git 
find ../old/ | ../import.pl 
hello greg 
cp ../old/libs/config/config_file_01.pm libs/config/config_file.pm 
cp ../old/libs/lib_file.01.pm libs/lib_file.01.pm 
git add --all 
git commit -a -m "commint from tag 01" 
cp ../old/libs/config/config_file_02.pm libs/config/config_file.pm 
cp ../old/libs/lib_file.02.pm libs/lib_file.02.pm 
git add --all 
git commit -a -m "commint from tag 02" 
cp ../old/libs/config/config_file_03.pm libs/config/config_file.pm 
cp ../old/libs/lib_file.03.pm libs/lib_file.03.pm 
git add --all 
git commit -a -m "commint from tag 03" 
+0

ありがとうございます。実際に私たちは皆さんの考え方に似ています。 git-fast-importを使った私たちの考えはちょっと間違っていました。 – nmanh

関連する問題