0


0

私はそれに含まれている7つの様々なプロジェクトを含むVisual Studio 2008ソリューションを持っています。 これらの「プロジェクト」のうち3つはWebサイト(プロジェクトファイルのないプロジェクトの一種)です。

すべてのディレクトリからさまざまなVisual Sourcesafeファイルをすべて削除し、SLNファイル内のScc参照と存在するすべてのプロジェクトファイルを削除しました。 SUOファイルとすべてのUSERファイルも削除しました。 Visual Studioは、まだ2つのWebサイトがまだソース管理下にあると考えており、SccエントリをSLNファイルに追加し直しています。

誰かが古いソース管理についてまだ知っていることを知っていますか。

_Edit:_私が言及しなかったもう一つのことは、VSSフックを削除しようとしているファイルが、VSSの既知の作業ディレクトリ、pythonスクリプトの実行、およびソリューションが開かれる前に行われたファイルの手動編集の外側にコピーされたことです。 VS 2008またはVS 2005(私は両方とも問題を抱えていました)

これは私がこれらのファイルを取り除き、どのファイルを手動で編集する必要があるのか​​を知らせるために使ったpythonスクリプトです。

import os、os.pathからの統計import

def main():startDir = r "C:¥Documents and Settings¥user¥Desktop¥project"

manualEdits = []

ルート、ディレクトリ、os.walk内のファイル(startDir、topdown = False):ディレクトリ内の '.svn'の場合:ファイル内の名前がdirs.remove( '。svn')の場合:os.chmod(join(root、name) name.endswith( "。vssscc")またはname.endswith( "。scc")、name.endswith( "。vspscc")、name.endswith( "。suo")、またはname.endswith(、stat.S_IWRITE)のいずれかです。 ".user"):print "削除:"、name.endswith( "sln")またはname.endswith( "dbp")またはnameの場合は、join(root、name)os.remove(join(root、name))。 endswith( "vbproj")またはname.endswith( "csproj"):manualEdits.append(join(root、name))

「これらのファイルには手動で編集する必要があります」と入力します

__name__ == "__main__":main()の場合

3 回答


1


それはおそらくあなたのVSのインスタンスにそれを追加しようとしているだけです。 あなたはキャッシュを削除する必要がありますので、VSはもはやSSの下ではないと思います

  1. ファイルの下 - > SourceControl - >ワークスペース

  2. SSの場所を選択

  3. 編集する

  4. 作業フォルダを選択

  5. 削除します。


1


それらのことは有害です! Visual Studioは、slnファイルを構成するXMLなど、あらゆる場所でSourceSafeへのリンクを固執します。

私はsourcesafeをsubversionに変換する私の経験について articleを書き、それに私ががらくたを片付けるために使ったpythonスクリプトを含めました。 ご注意ください:

1)これは非常に軽いテストです。 sln / * projファイルを壊さないようにバックアップを作成してください。 それが何かを台無しにしなかったことを確認するために前後にあなたのテストスイートを実行してください 知るか! しかし、見知らぬことが起こった。)

2)これは、ソースセーフとビジュアルスタジオの異なるバージョンを念頭に置いて行われた可能性があるので、調整する必要があるかもしれません。 とにかく、それ以上の面倒なことなく:

osのインポート、再

PROJ_RE = re.compile(r "^ \ s Scc")SLN_RE = re.compile(r "GlobalSection \(SourceCodeControl \)。*?EndGlobalSection"、re.DOTALL)VDPROJ_RE = re.compile(r "^ \" Scc " 「)

os.walk( '。')の(dir、dirnames、filenames)の場合:filenamesのfnameの場合:fullname = os.path.join(dir、fname)if fname.endswith( 'scc'):os.unlink(フルネーム) )elif fname.endswith( 'vdproj'):#Installerプロジェクトのフォーマットは異なります。fin = file(fullname)text = fin.readlines()fin.close()

テキスト内の行のfout = file(フルネーム、 'w'):VDPROJ_RE.matchではない場合(line):fout.write(line)fout.close()elif fname.endswith( 'csproj'):fin = file(フルネーム) )text = fin.readlines()fin.close()

テキスト内の行に対するfout = file(フルネーム、 'w'):PROJ_RE.match(line)でない場合:fout.write(line)fout.close()elif fname.endswith( 'sln'):fin = file(フルネーム) )text = fin.read()fin.close()

text = SLN_RE.sub( ""、text)

fout = file(フルネーム、 'w')fout.write(テキスト)


0


%APPDATA%ディレクトリに、Visual StudioはVisual Studioで使用されているWebサイトのリストをそのサイトの設定とともに保存します。

私のVistaマシンでは、ファイルの正確な場所は

C:\Users\{name}\AppData\Local\Microsoft\WebsiteCache\Websites.xml

このファイルには、次のようなエントリが含まれています。


ご覧のとおり、これにはソリューションファイルの一部でもあるScc参照が含まれています。 (この場合、SCCプロバイダはAnkhSVN 2.0なので、実際のSCCマッピングは含まれていません。SCCプロバイダに作業コピーを見るように指示する定数文字列だけです)。

この情報を複数の場所にキャッシュすることで、不足しているプロジェクトファイルを修正しようとしたと思います。 しかし、このファイルが適切に文書化されていれば大歓迎です。