git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] remote-helpers: fixes
@ 2013-12-07 13:09 Felipe Contreras
  2013-12-07 13:09 ` [PATCH 1/4] remote-hg: avoid buggy strftime() Felipe Contreras
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Felipe Contreras @ 2013-12-07 13:09 UTC (permalink / raw)
  To: git; +Cc: Felipe Contreras

Felipe Contreras (3):
  remote-helpers: add extra safety checks
  remote-hg: fix 'shared path' path
  remote-hg: add tests for special filenames

jcb91 (1):
  remote-hg: avoid buggy strftime()

 contrib/remote-helpers/git-remote-bzr | 14 +++++---
 contrib/remote-helpers/git-remote-hg  | 19 +++++++---
 contrib/remote-helpers/test-hg.sh     | 68 +++++++++++++++++++++++++++++++++++
 3 files changed, 92 insertions(+), 9 deletions(-)

-- 
1.8.4.2+fc1

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/4] remote-hg: avoid buggy strftime()
  2013-12-07 13:09 [PATCH 0/4] remote-helpers: fixes Felipe Contreras
@ 2013-12-07 13:09 ` Felipe Contreras
  2013-12-07 13:09 ` [PATCH 2/4] remote-helpers: add extra safety checks Felipe Contreras
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: Felipe Contreras @ 2013-12-07 13:09 UTC (permalink / raw)
  To: git; +Cc: jcb91, Felipe Contreras

From: jcb91 <joshuacookebarnes@gmail.com>

  error on pull: fatal: Invalid raw date "" in ident: remote-hg <>

Neither %s nor %z are officially supported by python, they may work on
some (most?) platforms, but not all.

removed strftime use of %s and %z, which are not officially supported by python, with standard formats

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 contrib/remote-helpers/git-remote-hg | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg
index c6026b9..a81d59e 100755
--- a/contrib/remote-helpers/git-remote-hg
+++ b/contrib/remote-helpers/git-remote-hg
@@ -538,7 +538,7 @@ def export_ref(repo, name, kind, head):
 
         print "commit %s" % ref
         print "mark :%d" % (note_mark)
-        print "committer remote-hg <> %s" % (ptime.strftime('%s %z'))
+        print "committer remote-hg <> %d %s" % (ptime.time(), gittz(ptime.timezone))
         desc = "Notes for %s\n" % (name)
         print "data %d" % (len(desc))
         print desc
-- 
1.8.4.2+fc1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/4] remote-helpers: add extra safety checks
  2013-12-07 13:09 [PATCH 0/4] remote-helpers: fixes Felipe Contreras
  2013-12-07 13:09 ` [PATCH 1/4] remote-hg: avoid buggy strftime() Felipe Contreras
@ 2013-12-07 13:09 ` Felipe Contreras
  2013-12-07 13:09 ` [PATCH 3/4] remote-hg: fix 'shared path' path Felipe Contreras
  2013-12-07 13:09 ` [PATCH 4/4] remote-hg: add tests for special filenames Felipe Contreras
  3 siblings, 0 replies; 8+ messages in thread
From: Felipe Contreras @ 2013-12-07 13:09 UTC (permalink / raw)
  To: git; +Cc: Felipe Contreras

Suggested-by: Roman Ovchinnikov <coolthecold@gmail.com>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 contrib/remote-helpers/git-remote-bzr | 14 ++++++++++----
 contrib/remote-helpers/git-remote-hg  | 14 ++++++++++----
 2 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr
index 054161a..858ba3c 100755
--- a/contrib/remote-helpers/git-remote-bzr
+++ b/contrib/remote-helpers/git-remote-bzr
@@ -884,6 +884,16 @@ def main(args):
     global branches, peers
     global transports
 
+    marks = None
+    is_tmp = False
+    gitdir = os.environ.get('GIT_DIR', None)
+
+    if len(args) < 3:
+        die('Not enough arguments.')
+
+    if not gitdir:
+        die('GIT_DIR not set')
+
     alias = args[1]
     url = args[2]
 
@@ -892,7 +902,6 @@ def main(args):
     blob_marks = {}
     parsed_refs = {}
     files_cache = {}
-    marks = None
     branches = {}
     peers = {}
     transports = []
@@ -900,11 +909,8 @@ def main(args):
     if alias[5:] == url:
         is_tmp = True
         alias = hashlib.sha1(alias).hexdigest()
-    else:
-        is_tmp = False
 
     prefix = 'refs/bzr/%s' % alias
-    gitdir = os.environ['GIT_DIR']
     dirname = os.path.join(gitdir, 'bzr', alias)
 
     if not is_tmp:
diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg
index a81d59e..aa1d230 100755
--- a/contrib/remote-helpers/git-remote-hg
+++ b/contrib/remote-helpers/git-remote-hg
@@ -1165,6 +1165,16 @@ def main(args):
     global dry_run
     global notes, alias
 
+    marks = None
+    is_tmp = False
+    gitdir = os.environ.get('GIT_DIR', None)
+
+    if len(args) < 3:
+        die('Not enough arguments.')
+
+    if not gitdir:
+        die('GIT_DIR not set')
+
     alias = args[1]
     url = args[2]
     peer = None
@@ -1185,16 +1195,12 @@ def main(args):
     if alias[4:] == url:
         is_tmp = True
         alias = hashlib.sha1(alias).hexdigest()
-    else:
-        is_tmp = False
 
-    gitdir = os.environ['GIT_DIR']
     dirname = os.path.join(gitdir, 'hg', alias)
     branches = {}
     bmarks = {}
     blob_marks = {}
     parsed_refs = {}
-    marks = None
     parsed_tags = {}
     filenodes = {}
     fake_bmark = None
-- 
1.8.4.2+fc1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/4] remote-hg: fix 'shared path' path
  2013-12-07 13:09 [PATCH 0/4] remote-helpers: fixes Felipe Contreras
  2013-12-07 13:09 ` [PATCH 1/4] remote-hg: avoid buggy strftime() Felipe Contreras
  2013-12-07 13:09 ` [PATCH 2/4] remote-helpers: add extra safety checks Felipe Contreras
@ 2013-12-07 13:09 ` Felipe Contreras
  2013-12-13 17:58   ` Antoine Pelisse
  2013-12-07 13:09 ` [PATCH 4/4] remote-hg: add tests for special filenames Felipe Contreras
  3 siblings, 1 reply; 8+ messages in thread
From: Felipe Contreras @ 2013-12-07 13:09 UTC (permalink / raw)
  To: git; +Cc: Felipe Contreras

If the repository is moved, the absolute path of the shared repository
would fail.

Make sure it's always up-to-date.

Reported-by: Michael Davis <mjmdavis@gmail.com>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 contrib/remote-helpers/git-remote-hg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg
index aa1d230..718ef95 100755
--- a/contrib/remote-helpers/git-remote-hg
+++ b/contrib/remote-helpers/git-remote-hg
@@ -416,6 +416,9 @@ def get_repo(url, alias):
         local_path = os.path.join(dirname, 'clone')
         if not os.path.exists(local_path):
             hg.share(myui, shared_path, local_path, update=False)
+        else:
+            # make sure the shared path is always up-to-date
+            util.writefile(os.path.join(local_path, '.hg', 'sharedpath'), hg_path)
 
         repo = hg.repository(myui, local_path)
         try:
-- 
1.8.4.2+fc1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/4] remote-hg: add tests for special filenames
  2013-12-07 13:09 [PATCH 0/4] remote-helpers: fixes Felipe Contreras
                   ` (2 preceding siblings ...)
  2013-12-07 13:09 ` [PATCH 3/4] remote-hg: fix 'shared path' path Felipe Contreras
@ 2013-12-07 13:09 ` Felipe Contreras
  3 siblings, 0 replies; 8+ messages in thread
From: Felipe Contreras @ 2013-12-07 13:09 UTC (permalink / raw)
  To: git; +Cc: Felipe Contreras

So that we check that UTF-8 and spaces work fine.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 contrib/remote-helpers/test-hg.sh | 68 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh
index 72f745d..56840ff 100755
--- a/contrib/remote-helpers/test-hg.sh
+++ b/contrib/remote-helpers/test-hg.sh
@@ -442,6 +442,74 @@ test_expect_success 'remote new bookmark multiple branch head' '
 # cleanup previous stuff
 rm -rf hgrepo
 
+test_expect_success 'fetch special filenames' '
+	test_when_finished "rm -rf hgrepo gitrepo && LC_ALL=C" &&
+
+	LC_ALL=en_US.UTF-8
+	export LC_ALL
+
+	(
+	hg init hgrepo &&
+	cd hgrepo &&
+
+	echo test >> "æ rø" &&
+	hg add "æ rø" &&
+	echo test >> "ø~?" &&
+	hg add "ø~?" &&
+	hg commit -m add-utf-8 &&
+	echo test >> "æ rø" &&
+	hg commit -m test-utf-8 &&
+	hg rm "ø~?" &&
+	hg mv "æ rø" "ø~?" &&
+	hg commit -m hg-mv-utf-8
+	) &&
+
+	(
+	git clone "hg::hgrepo" gitrepo &&
+	cd gitrepo &&
+	git -c core.quotepath=false ls-files > ../actual
+	) &&
+	echo "ø~?" > expected &&
+	test_cmp expected actual
+'
+
+test_expect_success 'push special filenames' '
+	test_when_finished "rm -rf hgrepo gitrepo && LC_ALL=C" &&
+
+	mkdir -p tmp && cd tmp &&
+
+	LC_ALL=en_US.UTF-8
+	export LC_ALL
+
+	(
+	hg init hgrepo &&
+	cd hgrepo &&
+
+	echo one >> content &&
+	hg add content &&
+	hg commit -m one
+	) &&
+
+	(
+	git clone "hg::hgrepo" gitrepo &&
+	cd gitrepo &&
+
+	echo test >> "æ rø" &&
+	git add "æ rø" &&
+	git commit -m utf-8 &&
+
+	git push
+	) &&
+
+	(cd hgrepo &&
+	hg update &&
+	hg manifest > ../actual
+	) &&
+
+	printf "content\næ rø\n" > expected &&
+	test_cmp expected actual
+'
+
 setup_big_push () {
 	(
 	hg init hgrepo &&
-- 
1.8.4.2+fc1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 3/4] remote-hg: fix 'shared path' path
  2013-12-07 13:09 ` [PATCH 3/4] remote-hg: fix 'shared path' path Felipe Contreras
@ 2013-12-13 17:58   ` Antoine Pelisse
  2013-12-17 22:25     ` Junio C Hamano
  0 siblings, 1 reply; 8+ messages in thread
From: Antoine Pelisse @ 2013-12-13 17:58 UTC (permalink / raw)
  To: Felipe Contreras; +Cc: git

On Sat, Dec 7, 2013 at 2:09 PM, Felipe Contreras
<felipe.contreras@gmail.com> wrote:
> If the repository is moved, the absolute path of the shared repository
> would fail.
>
> Make sure it's always up-to-date.
>
> Reported-by: Michael Davis <mjmdavis@gmail.com>
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> ---
>  contrib/remote-helpers/git-remote-hg | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg
> index aa1d230..718ef95 100755
> --- a/contrib/remote-helpers/git-remote-hg
> +++ b/contrib/remote-helpers/git-remote-hg
> @@ -416,6 +416,9 @@ def get_repo(url, alias):
>          local_path = os.path.join(dirname, 'clone')
>          if not os.path.exists(local_path):
>              hg.share(myui, shared_path, local_path, update=False)
> +        else:
> +            # make sure the shared path is always up-to-date
> +            util.writefile(os.path.join(local_path, '.hg', 'sharedpath'), hg_path)

Considering this is modifying a "private mercurial file", would it
make sense to include a test like I did in my equivalent patch ?

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 3/4] remote-hg: fix 'shared path' path
  2013-12-13 17:58   ` Antoine Pelisse
@ 2013-12-17 22:25     ` Junio C Hamano
  2013-12-23 20:23       ` [PATCH] remote-hg: test 'shared_path' in a moved clone Antoine Pelisse
  0 siblings, 1 reply; 8+ messages in thread
From: Junio C Hamano @ 2013-12-17 22:25 UTC (permalink / raw)
  To: Antoine Pelisse; +Cc: Felipe Contreras, git

Antoine Pelisse <apelisse@gmail.com> writes:

> On Sat, Dec 7, 2013 at 2:09 PM, Felipe Contreras
> <felipe.contreras@gmail.com> wrote:
>> If the repository is moved, the absolute path of the shared repository
>> would fail.
>>
>> Make sure it's always up-to-date.
>>
>> Reported-by: Michael Davis <mjmdavis@gmail.com>
>> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
>> ---
>>  contrib/remote-helpers/git-remote-hg | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg
>> index aa1d230..718ef95 100755
>> --- a/contrib/remote-helpers/git-remote-hg
>> +++ b/contrib/remote-helpers/git-remote-hg
>> @@ -416,6 +416,9 @@ def get_repo(url, alias):
>>          local_path = os.path.join(dirname, 'clone')
>>          if not os.path.exists(local_path):
>>              hg.share(myui, shared_path, local_path, update=False)
>> +        else:
>> +            # make sure the shared path is always up-to-date
>> +            util.writefile(os.path.join(local_path, '.hg', 'sharedpath'), hg_path)
>
> Considering this is modifying a "private mercurial file", would it
> make sense to include a test like I did in my equivalent patch ?

Hmph. I was planning to merge the topic to 'next' today; perhaps the
necessary tests can come as a follow-up patch on top of the topic
before it graduates to 'master'?

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] remote-hg: test 'shared_path' in a moved clone
  2013-12-17 22:25     ` Junio C Hamano
@ 2013-12-23 20:23       ` Antoine Pelisse
  0 siblings, 0 replies; 8+ messages in thread
From: Antoine Pelisse @ 2013-12-23 20:23 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Felipe Contreras, git, Antoine Pelisse

Since e71d1378 (remote-hg: fix 'shared path' path, 2013-12-07),
Mercurial 'shared_path' file is correctly updated whenever a clone is
moved. Make sure it keeps working, especially as this is depending on a
private Mercurial file.

Signed-off-by: Antoine Pelisse <apelisse@gmail.com>
---
 contrib/remote-helpers/test-hg.sh | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh
index 0b7df11..5d128a5 100755
--- a/contrib/remote-helpers/test-hg.sh
+++ b/contrib/remote-helpers/test-hg.sh
@@ -337,6 +337,17 @@ test_expect_success 'remote cloning' '
 	check gitrepo HEAD zero
 '
 
+test_expect_success 'moving remote clone' '
+	test_when_finished "rm -rf gitrepo*" &&
+
+	(
+	git clone "hg::hgrepo" gitrepo &&
+	mv gitrepo gitrepo2 &&
+	cd gitrepo2 &&
+	git fetch
+	)
+'
+
 test_expect_success 'remote update bookmark' '
 	test_when_finished "rm -rf gitrepo*" &&
 
-- 
1.8.5.1.97.g8d784da.dirty

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-12-23 20:25 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-07 13:09 [PATCH 0/4] remote-helpers: fixes Felipe Contreras
2013-12-07 13:09 ` [PATCH 1/4] remote-hg: avoid buggy strftime() Felipe Contreras
2013-12-07 13:09 ` [PATCH 2/4] remote-helpers: add extra safety checks Felipe Contreras
2013-12-07 13:09 ` [PATCH 3/4] remote-hg: fix 'shared path' path Felipe Contreras
2013-12-13 17:58   ` Antoine Pelisse
2013-12-17 22:25     ` Junio C Hamano
2013-12-23 20:23       ` [PATCH] remote-hg: test 'shared_path' in a moved clone Antoine Pelisse
2013-12-07 13:09 ` [PATCH 4/4] remote-hg: add tests for special filenames Felipe Contreras

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).