2010-08-24 15 views
8

मैं hgsvn के साथ एक एसवीएन रेपो को बदलने की कोशिश कर रहा हूं और मेरे पास कुछ ऐसा काम है जहां एसवीएन गुण संशोधित होते हैं, लेकिन चूंकि Mercurial उन का उपयोग नहीं करता है, यह इसे खाली के रूप में देखता है प्रतिबद्धता और aborts। क्या इस प्रतिबद्धता को स्वीकार करने के लिए को मजबूर करने का कोई तरीका है जो कुछ भी नहीं बदलेगा?मैं एक खाली प्रतिबद्धता स्वीकार करने के लिए Mercurial कैसे मजबूर कर सकता हूं

मैं खाली काम छोड़ने के लिए इसे हैक करने के लिए hgsvn के आंतरिक के साथ पर्याप्त परिचित नहीं हूं।

+2

एक हैक है: 1 फ़ाइल बनाएं, प्रतिबद्ध करें, फिर उस फ़ाइल को हटाएं और संशोधित करें। – vorrtex

उत्तर

3

यदि आप एक स्थानीय svn $ $ REVNUM टैग जोड़ते हैं तो आप इस प्रतिबद्धता को छोड़ सकते हैं (= संशोधन जिसमें svn। ($ REVNUM-1) टैग भी है)। फिर आप hgpullsvn के साथ जारी रख सकते हैं।

मान लें कि आपका आयात इस राज्य (पिछले आयातित राजस्व 15800 है, संपत्ति-केवल राजस्व 15801 है) पर है:

$ hg tag -l -r 123456789abc svn.15801 
:

$ hg log -l1 
changeset: 1234:123456789abc 
branch:  trunk 
tag:   tip 
tag:   svn.15800 
parent:  1233:cba987654321 
user:  Rudi <[email protected]> 
date:  Tue Aug 24 11:42:23 2010 +0200 
summary:  Foobar 

$ svn info 
Path: . 
URL: svn+ssh://example.com/foobar/trunk 
Repository Root: svn+ssh://example.com/foobar 
Repository UUID: 26c7c274-8ed1-4e7f-bdc1-5c767a948b10 
Revision: 15801 
Node Kind: directory 
Schedule: normal 
Last Changed Author: rudi 
Last Changed Rev: 15801 
Last Changed Date: 2010-08-24 14:00:29 +0200 (Di, 24 Aug 2010) 

तो फिर तुम बस svn.15801 टैग को जोड़ने

और आयात करने के लिए contunie।

लेकिन इसे आजमाने से पहले बैकअप बनाएं।

+0

धन्यवाद, यह मुझे उस प्रतिबद्धता से पहले मिला। –

1

जब मुझे पहले पी 4 और एचजी में खाली काम की आवश्यकता होती है, तो मैंने बस एक फ़ाइल का उपयोग किया है जिसे खाली प्रतिबद्धता 'अलग' करने के लिए अलग किया गया था। बस कुछ प्रकार की यादृच्छिक स्ट्रिंग को डंप करें (मैं आमतौर पर समय और तारीख का उपयोग करता हूं) और hg commit दूर ....

3

मुझे लगता है कि आप Mercurial में खाली प्रतिबद्ध नहीं कर सकते हैं। यहां a thread explaining why है।

0

शायद, निम्नलिखित स्थिति में आपकी सहायता नहीं करेंगे, लेकिन अन्य पाठक को रोक देगा।

आप लगभग खाली पैच के आयात के माध्यम से "खाली" प्रतिबद्ध बना सकते हैं। मैंने एक पैच निर्यात किया, इसमें केवल 3 लाइनों (diff ..., ---... और +++ ...) छोड़कर, इसे hg import --bypass --message ...

0

@ vorrtex की टिप्पणी के अनुसार आयात किया गया

  1. एक नई फ़ाइल (जैसे कि, Dummy.txt) जोड़ें और प्रतिबद्ध: मूल प्रश्न पर, सरल विधि के लिए मजबूर करने के लिए एक खाली मर्क्युरियल में प्रतिबद्ध इस प्रकार है।
  2. hg forget Dummy.txt
  3. hg commit --amend

यह पिछले से Dummy.txt निकाल देंगे प्रतिबद्ध, यह खाली हो जाता है। (आप चरण 1 के लिए TortoiseHg का उपयोग कर सकते हैं लेकिन आपको चरण 2 और 3 के लिए कमांड लाइन टूल का उपयोग करना होगा।

मैं इसे एक नए उत्तर के रूप में जोड़ रहा हूं क्योंकि मूल रूप से इस धागे को स्कैन करते समय मैंने टिप्पणी को याद किया , और मौजूदा उत्तर वास्तव में खाली प्रतिबद्धता नहीं बनाते हैं।

संबंधित मुद्दे

 संबंधित मुद्दे