2015-08-25 13 views
9

Gitlab (yerel) sunucusunda birleştirme isteği oluşturdum. Şimdi birleştirme isteğine tıkladığımda, istek 500 hatasıyla zaman aşımına uğruyor. Bundan önce bir hata kodu 504 alıyorum ve this gitlab support topic'da belirtilen değişikliği uyguladım.GitLab sunucusundan birleştirme isteği nasıl kaldırılır

Tüm yapmak istediğim birleştirmeyi kaldırma isteğidir. Bunu yapmanın manüel bir yolu var mı?

+0

Düzenlemeler için teşekkürler ... şimdi bazı cevaplar hakkında ne dersiniz! – Sanj

cevap

8

Evet, kullanıcı arabiriminde birleştirme isteğini kaldırmanın bir yolunu bulamadım, ancak veritabanından kolayca silebilirsiniz.

Komut isteminde

(Lütfen dikkat, sadece Ubuntu 14.04.3 LTS üzerinde gitlab CE 8.4.0-ce.0 bu test olduğunu .. Diğer sürümler sahip olduğunuz farklı bir veritabanı yapısı)

, yürütmek (root olarak) aşağıdaki komutu:

sudo -u gitlab-psql /opt/gitlab/embedded/bin/psql -h /var/opt/gitlab/postgresql -d gitlabhq_production 

Bu PostgreSQL komut terminalini getirecektir. Ardından, silmek istediğiniz birleştirme isteğini bulmanız gerekir. PostgreSQL komut terminalinde aşağıdaki yazın:

select id, title from merge_requests; 

Sen birleştirme isteği kimlikleri ve başlıkların listesini alırsınız. Silmek ve id

Tamam dikkatinizi çekmek isteriz tane bul, en Silmek istediğiniz ve id5 olan birleştirme isteği buldum diyelim. Aşağıdaki SQL komutlarını kullanarak bu birleştirme isteği ile ilişkili tüm verileri silmeniz yeterlidir.

delete from merge_requests where id = 5; 
delete from merge_request_diffs where merge_request_id = 5; 
delete from notes where noteable_type = 'MergeRequest' and noteable_id = 5; 

(gerçek birleştirme isteği id aşağıda komutlar Yedek 5) Şunları yapabilirsiniz yazarak PostgreSQL komut terminalden dışarı şimdi çıkış:

\q 

Kişisel birleştirme isteği bundan gitmiş olmalı web arayüzü

+1

Bu prosedür hala Gitlab CE 8.5.8'de (46bb47a) çalışmaktadır. Bu yüzden en azından tüm sürümlerde 8.4.0 ve 8.5.8 arasındaki bahisler de varsayalım. –

+0

@ thomas-keller tarafından önerilen çözümün daha temiz olduğunu düşünüyorum. Doğrudan DB'ye odaklanmak hataya açık ve her şeyi düzgün bir şekilde temizlediğinizden% 100 emin olmalısınız. API'yi kullanmak, bu sorumluluğu şüphesiz MR'ları silerken neyin gerçekleşmesi gerektiğini (ve olmamasını) daha iyi anlayan GitLab geliştiricilerine kaydırır. – exhuma

2

bu yanı CE ile çalışıp çalışmadığını bilmiyorum, ama en azından EE birleştirme istekleri silmek için bir API bitiş noktası vardır: O repo birleştirme isteğini bulmak, hedef deposuna

curl --request DELETE --header "PRIVATE-TOKEN: <private_token>" https://gitlab.example.com/api/v3/projects/4/merge_request/85 
+0

Sadece CE ile test edildi ve bir çekicilik gibi çalışır. Teşekkürler! – exhuma

0

Git ve "Birleştirme Talebini Kapat" ı tıklamanız yeterlidir. Birleştirme isteğiniz olduğu için, bunu yapma hakkınız var.

+1

Kapatma, silme ile tamamen aynı değil. MR'ın kapatılması, posteriorluk için DB'de tutar. Bazen tamamen kurtulmak isteyebilirsiniz (örneğin bir şeyi test etmek için MR'yi açtığınızda). – exhuma