Menggunakan TFSDeleteProject untuk menghapus proyek di Azure DevOps lokal

Azure DevOps Server |Azure DevOps Server |Azure DevOps Server 2022 | Azure DevOps Server 2020

Anda dapat menghapus proyek dari Azure DevOps Server saat proyek tidak lagi diperlukan dengan menggunakan TFSDeleteProject.

Selain itu, jika ada komponen yang tetap tidak dihapus setelah pembuatan proyek yang gagal, Anda dapat menggunakan TFSDeleteProject untuk menghapusnya.

Untuk menghapus proyek dari Azure DevOps Services menggunakan konsol admin, lihat Menghapus proyek.

Peringatan

TFSDeleteProject secara permanen menghancurkan proyek, setelah itu tidak dapat dipulihkan. Anda harus mencadangkan semua data proyek penting terlebih dahulu sebelum menggunakan TFSDeleteProject.

Untuk mengakses alat baris perintah TFSDeleteProject, buka jendela Prompt Perintah dan masukkan:

cd %programfiles%\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TfsDeleteProject.exe

Prasyarat

Untuk menggunakan perintah TFSDeleteProject , Anda harus menjadi anggota grup keamanan Administrator Team Foundation atau grup keamanan Administrator Proyek .

Untuk informasi selengkapnya, lihat Mengatur izin administrator untuk Azure DevOps Server.

TFSDeleteproject [/q] [/force] [/excludewss] /collection:URL TeamProjectName

Opsi

Deskripsi

/q

Fakultatif. Gunakan mode diam. Jangan meminta konfirmasi kepada pengguna.

/force

Fakultatif. Menentukan bahwa proses penghapusan harus berlanjut meskipun beberapa komponen tidak dapat dihapus.

/excludewss

Fakultatif. Menentukan untuk tidak menghapus situs SharePoint yang terkait dengan proyek. Tentukan opsi ini untuk mempertahankan situs yang ada sehingga proyek lain dapat terus menggunakannya.

/collection:URL

Dibutuhkan. Menentukan URI dari kumpulan proyek. Anda harus menggunakan format berikut untuk URI: http://ServerName:Port/VirtualDirectoryName/CollectionName.

Jika Anda tidak menentukan direktori virtual, Anda harus menggunakan format berikut untuk URI: http://ServerName:Port/CollectionName.

TeamProjectName

Dibutuhkan. Nama proyek. Jika nama menyertakan spasi, sertakan dalam tanda kutip.

Komentar

Saat Anda membuat proyek, Azure DevOps Server membuat objek data di server yang menghosting Azure DevOps Server, dan dapat membuat objek data di server yang menghosting Produk SharePoint, dan server yang menghosting SQL Server Reporting Services.

Saat Anda menghapus proyek, laporan secara otomatis dihapus dari SQL Server Reporting Services.

Saat Anda menghapus proyek, Anda bisa memilih apakah akan menghapus objek yang dibuat untuk mendukung situs SharePoint atau tidak.

Namun, kesalahan dapat mencegah Azure DevOps Server membuat atau menghapus semua objek. Untuk memecahkan masalah ini, bagian berikut ini menyediakan informasi latar belakang, tautan ke sumber daya lain, dan langkah-langkah spesifik yang membantu Anda menentukan penyebab masalah, memperbaiki masalah, dan jika perlu menghapus objek data yang tersisa setelah menjalankan TFSDeleteProject.

Proses TFSDeleteProject

Saat Anda menggunakan alat baris perintah TFSDeleteProject, alat ini terlebih dahulu menghapus data proyek lalu memproyeksikan situs Web.

Fase 1: TFSDeleteProject menghapus data proyek

Pada fase pertama, TFSDeleteProject secara otomatis melakukan langkah-langkah berikut untuk menghapus data proyek:

  1. TFSDeleteProject membuat inventaris semua komponen yang merupakan kandidat untuk dihapus.

    Ini termasuk komponen yang terintegrasi dengan Test Manager, Team Foundation Build, dan kontrol versi Team Foundation.

  2. TFSDeleteProject menghapus komponen yang menampilkan simpul proyek di Team Explorer.

  3. TFSDeleteProject menandai informasi kontrol versi untuk dihapus, tetapi tidak segera menghapus informasi ini.

    Informasi ini mencakup semua cabang kontrol versi dalam proyek yang ditentukan, tetapi tidak ada cabang lain di luar proyek.

    • Jika cabang induk dan cabang anak keduanya berada dalam proyek, TFSDeleteProject menandai keduanya untuk penghapusan.
    • Jika cabang induk dan anak berada dalam proyek yang berbeda, TFSDeleteProject hanya menandai cabang yang ditentukan.
    • Jika proyek lain adalah cabang dari proyek yang ditentukan, TFSDeleteProject hanya menandai proyek yang ditentukan. Ketika proyek yang ditentukan dihapus, proyek cabang menjadi yatim piatu.
  4. TFSDeleteProject segera menghapus data build, termasuk informasi dan data inti, definisi build, agen build, dan hasil pengujian yang terkait dengan proyek. Alat ini tidak menghapus lokasi build drop.

    Anda tidak perlu menghapus lokasi build drop proyek lama sebelum membuat proyek yang menggunakan lokasi drop build yang sama.

    Jika proyek yang ditentukan berisi sejumlah besar data build, penghapusan mungkin tidak selesai dalam periode batas waktu.

    Untuk mengatasi masalah ini, lihat Meningkatkan Periode Time-Out, lalu jalankan TFSDeleteProject lagi.

  5. TFSDeleteProject segera menghapus item kerja dan bidang item kerja milik proyek yang ditentukan, dan menghapus semua metadata yang tidak dibagikan.

    Jika proyek yang ditentukan berisi sejumlah besar data item kerja, penghapusan mungkin tidak selesai dalam periode batas waktu.

    Untuk mengatasi masalah ini, lihat Meningkatkan Periode Time-Out, lalu jalankan TFSDeleteProject lagi.

Fase 2: TFSDeleteProject menghapus situs web proyek

Pada fase kedua, TFSDeleteProject menghapus data berikut:

Penting

Langkah-langkah ini dapat memakan waktu lama untuk diselesaikan, dan selama waktu tersebut mereka dapat menurunkan performa server.

  • TFSDeleteProject Menggunakan API Reporting Services untuk menghapus laporan di server yang menghosting Reporting Services.
  • TFSDeleteProject Menghapus situs Web portal proyek dari server yang menghosting Produk SharePoint.

Langkah ini hanya terjadi jika proyek memiliki situs dan penghapusan situs tidak dikecualikan dalam baris perintah. (Pertimbangkan bahwa beberapa proyek dapat menunjuk ke satu situs, tetapi hanya salah satu dari mereka yang dapat menjadi pemilik di mana laporan/dasbor secara default menggunakan proyek ini).

Nota

Sebelum menghapus proyek, Anda dapat mengonfirmasi bahwa Reporting Services dan Produk SharePoint menggunakan URL proyek yang benar dengan memverifikasi pengaturan portal. Untuk informasi selengkapnya, lihat Menambahkan Portal Proyek.

Jika TFSDeleteProject berhasil menghapus semua elemen data di atas, TFSDeleteProject akan mengembalikan pesan Selesai.

Untuk memverifikasi hasil ini, lihat Memverifikasi Komponen Proyek Dihapus.

Jika satu atau beberapa komponen tidak dihapus, Anda dapat menjalankan ulang TFSProjectDelete dengan menggunakan opsi /force untuk melanjutkan proses penghapusan meskipun tidak dapat menghapus semua elemen data.

Dengan opsi ini TFSDeleteProject, melewati komponen yang tidak dapat dihapus, mengembalikan pesan kesalahan, menghapus komponen berikutnya, dan membiarkan metadata proyek dan pengaturan keamanan tetap utuh.

Data yang mungkin tetap tidak dihapus

Data berikut mungkin tetap dalam penyebaran setelah TFSDeleteProject berhasil diselesaikan:

  • Proyeksi data dalam kubus.

    Data proyek tetap berada di kubus hingga kubus dibangun kembali, pada saat itu layanan pengontrol gudang menghapus semua data build historis yang telah dihapus dari database Azure DevOps.

  • Buat file dan folder cadangan.

    Biner hasil build, file log dari build, dan file log yang berisi hasil pengujian diterbitkan selama proses pembangunan.

    Lokasi untuk file-file ini tidak dihapus. Jika ingin menghapus file-file ini, Anda harus menghapusnya secara manual.

  • Metadata pelacakan item kerja yang dibagikan.

    TFSDeleteProject tidak menghapus metadata apa pun untuk pelacakan item kerja yang dibagikan antar proyek.

  • Kontrol versi shelveset yang mengandung kode bersama.

    Shelveset pada sistem pengendalian versi tidak dihapus jika ada kode di shelveset dari beberapa proyek.

Memverifikasi penghapusan proyek

Anda dapat memverifikasi keberhasilan penghapusan proyek dengan mengonfirmasi bahwa simpul proyek tidak lagi muncul di Team Explorer dan bahwa situs Web portal proyeknya dan folder laporan tidak ada lagi.

  1. Buka Team Explorer dan verifikasi bahwa proyek tidak muncul sebagai simpul proyek.

  2. Buka Internet Explorer dan ketik URL situs Web portal proyek. Verifikasi bahwa situs tidak ada lagi.

  3. Di Internet Explorer, dalam kotak Alamat, ketik URL situs Web Reporting Services menggunakan salah satu format URL berikut:

    • http://ReportingServices/Reports
    • http://ReportingServices/Reports_TFSInstance
  4. Di Manajer Laporan, pilih Perlihatkan Detail.

  5. Verifikasi bahwa folder untuk proyek yang dihapus tidak lagi muncul.

    Pilih folder akar TfsReports, lalu pilih folder bernama untuk koleksi proyek.

    Seharusnya tidak ada lagi folder dengan nama proyek yang dihapus.

  6. Jika laporan atau situs Web tetap ada, lihat prosedur berikutnya.

Hapus komponen yang tersisa setelah penghapusan proyek parsial

Jika situs web portal proyek dan folder laporan tetap ada setelah Anda menghapus proyek, hapus situs dan folder secara manual.

  1. Masuk ke server yang menghosting Reporting Services untuk proyek yang Anda hapus.

  2. Buka Internet Explorer, dan di kotak Alamat ketik URL situs Web Reporting Services menggunakan salah satu format URL berikut:

    • http://localhost/Reports
    • http://localhost/Reports_TFSInstance
  3. Di Manajer Laporan, pilih Perlihatkan Detail.

  4. Pilih folder akar TfsReports, lalu pilih folder bernama untuk koleksi proyek.

  5. Pilih kotak centang untuk proyek yang dihapus.

  6. Pilih Hapus.

  7. Pilih OK untuk mengonfirmasi bahwa Anda ingin menghapus folder laporan untuk proyek.

  8. Untuk menghapus situs Web portal proyek dari proyek yang dihapus, lihat halaman berikut ini di situs Web Microsoft:

Membuat, Mengedit, dan Menghapus Situs Layanan Windows SharePoint.

Meningkatkan periode waktu kedaluwarsa

Secara default, setiap panggilan layanan Web yang diminta oleh perintah TFSDeleteProject untuk menghapus komponen harus diselesaikan dalam waktu 10 menit. Jika ada enam panggilan, maka prosesnya bisa memakan waktu hingga satu jam. Jika Anda ingin menghapus proyek yang terkait dengan sejumlah besar data, Anda dapat meningkatkan periode waktu habis ini untuk sementara waktu.

Nota

Ketika Anda meningkatkan waktu tunggu, perubahan memengaruhi semua panggilan layanan web. Secara umum, Anda ingin menjaga periode waktu habis hingga 10 menit untuk mencegah panggilan layanan Web menurunkan performa server, dan menyebabkan pengguna terkunci dari penggunaan antarmuka pengguna untuk jangka waktu yang lama. Oleh karena itu, setelah proyek berhasil dihapus, Anda harus mengubah periode waktu habis kembali menjadi 10 menit.

Prasyarat

Untuk menyelesaikan prosedur ini, Anda harus menjadi Administrator Windows pada server tingkat aplikasi.

Penting

Memodifikasi registri komputer secara tidak benar dapat menyebabkan komputer Anda menjadi tidak stabil. Jika Anda tidak terbiasa dengan registri, Anda tidak boleh menambahkan atau menghapus entri, atau mengubahnya dengan cara apa pun.

  1. Masuk ke server tingkat aplikasi.

  2. Pilih Mulai, Jalankan, ketik regedit, lalu pilih OK.

  3. Di panel browser, perluas HKEY_ LOCAL_MACHINE:

    • Jika server menjalankan sistem operasi 32-bit, perluas: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings.
    • Jika server menjalankan sistem operasi 64-bit, perluas: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings.
  4. Jika kunci TeamFoundation\RequestSettings tidak ada, ikuti langkah-langkah berikut untuk membuatnya:

    1. Buka menu konteks untuk TeamFoundation, arahkan ke Baru, dan pilih Kunci.
    2. Beri nama kunci RequestSettings.
    3. Buka menu konteks RequestSettings, pilih Baru, dan pilih Nilai DWORD.
    4. Beri nama nilai baru DefaultTimeout.
  5. Buka menu konteks untuk DefaultTimeout dan pilih Ubah.

  6. Di Data Nilai, ketik periode waktu habis dalam milidetik, lalu pilih Desimal.

    Misalnya, untuk meningkatkan periode waktu habis menjadi 30 menit, ketik 1800000. Untuk mengubah periode waktu habis kembali ke 10 menit, ketik 600000.

  7. Pilih OK.

  8. Pada menu File, pilih Keluar.

Contoh

Perintah berikut menghapus semua komponen yang terkait dengan proyek StoreFront di server Azure DevOps Server AdventureWorks1 dalam koleksi proyek Collection1 dan dari Team Explorer.

TFSDeleteProject /force /collection:http://AdventureWorks1:8080/tfs/Collection1 StoreFront