Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

TempFile path consistency vs the rest of the Ruby implementations #677

Closed
robertodecurnex opened this Issue · 5 comments

2 participants

@robertodecurnex

TempFile is using a different algorithm to generate the temp path.

Here are some examples (MRI vs JRuby):

Ruby 1.8.7

==============> /tmp/temp-index20130429-21223-1qdcggn-0
==============> /tmp/temp-index20130429-21223-1ct0r8o-0

Ruby 1.9.3

==============> /tmp/temp-index20130429-27066-1jtprvn
==============> /tmp/temp-index20130429-27066-rnt1f

JRuby 1.7.3

==============> /tmp/git_test1367248843047/test/temp-index.25063.5336
==============> /tmp/git_test1367248843047/test/temp-index.25063.5337

This may create weird compatibility issues.

Exampĺe: schacon/ruby-git#72

@headius
Owner

Do you have some example code to run? It appears that we used to implement the tempfile naming differently, but it now uses the same logic as in MRI.

@headius
Owner

Ahh sorry...we do have a slightly different algorithm contained in org.jruby.ext.tempfile.Tempfile#make_tmpname.

@headius
Owner

Hmm, after reading over the code, I can see no obvious advantage in what we have over the original tempfile.rb anymore. I'll confer with @enebo on whether we should just put it back.

@headius
Owner

I think what we'll do is pull out the filename-generating logic into a utility within JRuby and use that for now. For JRuby 9k (next major release) we'll just use MRI's tempfile.rb.

@headius headius closed this issue from a commit
@headius headius Use MRI logic for generating tempfile names in Tempfile.
This change does the following:

* Adds missing Ruby logic by defining Tempfile.create and
  including Dir::Tmpname into Tempfile. These changes happen in
  the new lib/ruby/shared/tempfile.rb.
* Invokes #create included from Tmpname to generate the filename,
  rather than using our own filename logic. This allows overriding
  both #create and #make_tempname. It also abstracts all name
  logic to Ruby's tmpdir.rb.
* Eliminate unused Reaper logic.
* Eliminate unused temp dir finding logic.
* Fixes #677
607c6d5
@headius headius closed this in 607c6d5
@robertodecurnex

Great! Ty, that was fast!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.