„Mercurial“: pašalinkite pakeitimų rinkinį iš nuotolinio filialo

Ar galima pašalinti iš ištrintų pakeitimų ar pašalinti visą pakeitimą? Aš netyčia spustelėjau .war failą, esantį nuotoliniame repo, ir noriu jį ištrinti.

20
25 мая '09 в 18:21 2009-05-25 18:21 Miguel Ping paklausė gegužės 25 d., 09:18, 2009-05-25 18:21
@ 4 atsakymai

Aš redagavau istoriją hg mqueue plėtiniu. Atrodo, kad jis dirbo. Ačiū visiems.

4
26 мая '09 в 12:44 2009-05-26 12:44 atsakė Miguel Ping gegužės 09 d. 12:44 2009-05-26 12:44

„Mercurial“ labai rūpestingai saugo jūsų duomenis, todėl niekada negalėsite pakeisti istorijos.

Taigi, yra daug „Mercurial“ plėtinių, kurie leidžia lengvai pakeisti istoriją. Redagavimo istorijos wiki puslapyje yra puslapis . Šis puslapis taip pat paaiškina pasekmes.

Jūsų konkrečiu atveju turėtumėte savęs paklausti, ar kiti žmonės jau ištrauks jūsų pakeitimų rinkinį? Jei taip, net jei ją ištrinsite, jis vis dar egzistuos jų klonuose, ir jums gali būti geriau priimti klaidą.

Jei nuspręsite jį pašalinti, aš siūlau naudoti hg clone kad gautumėte kopiją be jo. Tai saugus kelias, nes jis visada bus atsarginis. Jei nuotolinio saugykloje paspaudėte [z] :

 [x] --- [y] --- [z] 

ir dabar norite jį ištrinti, tada prisijungti prie serverio ir vykdyti

 hg clone -ry repo repo-without-z 

Tada repo-without-z bus visi kintamieji iki [y] - tai yra, [z] bus ištrinta:

 [x] --- [y] 
border=0

Tada galite tęsti darbą ir spustelėkite naują pakeitimų rinkinį:

 [x] --- [y] --- [w] 

Jei jau ištraukiau pakeitimų rinkinį [z] ir dabar ištrauksiu [w] , saugykloje matysiu du skyrius:

  [w] / [x] --- [y] --- [z] 

Tai nėra pavojinga, bet žmonės gali būti nustebinti. Jei iš klono pašalinsiu [z] , grįšiu į tą pačią saugyklą, kaip jūs. Tačiau, kaip aprašyta pirmiau, tai gali būti nepraktiška, jei turite daug vartotojų.

Taip pat galite naudoti MQ plėtinį, kad pašalintumėte vietinius pakeitimo rinkinius. Taigi, nesukursite naujo klono.

Galiausiai, jei esate tikras, kad paspaudimas buvo paskutinė operacija, atlikta serveryje, tada „ hg rollback gali būti naudojamas paskutiniam sandoriui ištrinti. Tačiau nedarykite to, jei esate vienintelis, kuris gali spustelėti saugyklą, kitaip galite atsisakyti kito sandorio.

Jei saugykla yra „ Bitbucket“ , negalite prisijungti prie serverio. Tačiau „Bitbucket“ neseniai pridėjo savo interneto sąsajai pralaidumo funkciją. Skiltyje „Administratorius“ raskite „Tvarkyti saugyklas“.

34
25 мая '09 в 19:27 2009-05-25 19:27 atsakymas, kurį pateikė Martin Geisler gegužės 09 d., 19:27, 2009-05-25 19:27

„Bitbucket“ siūlo jums paketą (atsarginę kopiją), kai ją ištrinate, o tai reiškia, kad jis neatitinka jūsų kvotos. Priežastis, kodėl tai daroma, yra tik tai, kad nepašalinome talpyklos rakto, nurodydami, kiek vietos naudojate.

Tai yra mūsų sistemos klaida ir bus nustatyta. Iki tol įsitikinkite, kad pakeitimo rinkinys ištrintas ir atsarginė kopija yra nemokama: -)

13
26 мая '09 в 10:04 2009-05-26 10:04 Atsakymą pateikė jespern gegužės 09 d., 10:04 2009-05-26 10:04

Turėjau panašų atvejį, kai noriu nuotoliniu būdu ištrinti filialą su modifikuotu filialu "A" iš filialo "Dev" naudojant TortoiseHg:

  • Sukurti AA filialą iš patronuojančios filialo filialo; jos kilmę.
  • Sujunkite A į AA (darbo katalogas) ir patikrinkite, ar pasirinkta parinktis „Atmesti visus pakeitimus iš kitos versijos“.
  • Sujungti AA į Dev filialą (su pranešimo pranešimu, rodančiu, kad A filialo pakeitimai buvo pašalinti).

Pamatysite, kad „A“ skyriuje „A“ filialo pakeitimai nebėra.

1
14 февр. Atsakymą MarwaAhmad pateikė vasario 14 d. 2017-02-14 07:01 '17 at 7:01 2017-02-14 07:01

Kiti klausimai apie etikečių arba Užduoti klausimą