Bagikan melalui


Menggunakan TFSDeleteProject untuk menghapus proyek di Azure DevOps lokal

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

Anda dapat menghapus proyek dari Azure DevOps Server ketika proyek tidak lagi diperlukan dengan 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, yang setelah itu tidak dapat dipulihkan. Anda harus mencadangkan semua data proyek penting sebelum menggunakan TFSDeleteProject.

Untuk mengakses alat baris perintah TFSDeleteProject, buka jendela Prompt Perintah tempat Visual Studio atau Team Explorer dipasang dan masukkan:

cd %programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE

Pada edisi 32-bit Windows, ganti %programfiles(x86)% dengan %programfiles%.

Prasyarat

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

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

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

Opsi

Deskripsi

/q

Opsional. Gunakan mode senyap. Jangan meminta konfirmasi pengguna tersebut.

/force

Opsional. Menentukan bahwa proses penghapusan harus dilanjutkan meskipun beberapa komponen tidak dapat dihapus.

/excludewss

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

/collection:URL

Wajib diisi. Menentukan nama 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

Wajib diisi. Nama proyek. Jika namanya menyertakan spasi, sertakan dalam tanda kutip.

Keterangan

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 SharePoint Products, dan server yang menghosting SQL Server Reporting Services.

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

Saat menghapus proyek, Anda dapat memilih jika 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 spesifik yang membantu Anda menentukan penyebab masalah, memperbaiki masalah, dan saat 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 penghapusan, 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 orphan.
  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 build drop yang sama.

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

    Untuk mengatasi masalah ini, lihat Meningkatkan Periode Waktu Habis, 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 build, penghapusan mungkin tidak selesai dalam periode waktu habis.

    Untuk mengatasi masalah ini, lihat Meningkatkan Periode Waktu Habis, lalu jalankan TFSDeleteProject lagi.

Fase 2: TFSDeleteProject menghapus data proyek

Pada fase kedua, TFSDeleteProject menghapus data berikut:

Penting

Langkah-langkah ini dapat memakan waktu lama untuk diselesaikan, dan selama waktu itu 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 terjadi hanya jika proyek yang memiliki penghapusan situs dan situs tidak dikecualikan di baris perintah. (Pertimbangkan bahwa beberapa proyek dapat menunjuk ke satu situs, tetapi hanya salah satu dari mereka yang dapat menjadi pemilik saat laporan/dasbor secara default menggunakan proyek ini).

Catatan

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

Jika TFSDeleteProject berhasil menghapus semua elemen data di atas, TFSDeleteProject akan menghasilkan 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:

  • Data proyek dalam kubus.

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

  • Membangun file dan folder drop.

    Buat biner, buat file log, dan file log berisi hasil pengujian yang diterbitkan selama proses build.

    Lokasi untuk file-file ini tidak dihapus. Jika Anda 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.

  • Shelveset kontrol versi yang berisi kode bersama.

    Shelveset kontrol versi tidak dihapus jika terdapat kode di shelveset dari beberapa proyek.

Memverifikasi penghapusan proyek

Anda dapat memverifikasi keberhasilan penghapusan proyek dengan mengonfirmasi bahwa node proyek tidak lagi muncul di Team Explorer serta bahwa situs Web portal proyek dan folder laporannya tidak lagi ada.

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

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

  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 Tampilkan Detail.

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

    Pilih folder akar TfsReports, lalu pilih folder yang dinamai untuk kumpulan 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. Di Internet Explorer, dalam 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 Tampilkan Detail.

  4. Pilih folder akar TfsReports, lalu pilih folder yang dinamai untuk kumpulan 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:

Buat, Edit, dan Hapus Situs Layanan Windows SharePoint.

Tingkatkan periode waktu habis

Secara default, setiap panggilan layanan Web memanggil masalah perintah TFSDeleteProject untuk menghapus komponen harus selesai dalam waktu 10 menit. Jika ada enam panggilan, 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.

Catatan

Ketika periode waktu habis ditingkatkan, perubahan tersebut memengaruhi semua panggilan layanan Web. Secara umum, Anda ingin menjaga periode waktu habis dalam waktu 10 menit untuk mencegah panggilan layanan Web menurunkan performa server dan menyebabkan pengguna tidak dapat menggunakan 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 di server tingkat aplikasi.

Penting

Memodifikasi registri komputer secara tidak benar dapat menyebabkan komputer menjadi tidak stabil. Jika tidak terbiasa dengan registri, Anda tidak boleh menambahkan atau menghapus entri, atau memodifikasinya 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 untuk RequestSettings, arahkan ke 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 kumpulan proyek Collection1 dan dari Team Explorer.

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