Git Product home page Git Product logo

acidfs's Introduction

Pylons

Build Status

Pylons is a rapid web application development framework.

Note

Pylons has merged with repoze.bfg, and is now in maintenance-only mode. It's highly recommended that new projects start with the new merged web framework, pyramid.

Install

Read the online Installation instructions.

If you want to install from source you can run the following command:

$ python setup.py install

This will display a message and download setuptools if the module is not already installed. It will then install Pylons and all its dependencies. You may need root privileges to install setuptools.

Testing

To test the source distribution run the following command:

$ python setup.py test

This will install additional dependencies needed for the tests. As above, you may need root privileges.

Documentation

Read the complete Pylons web framework documentation.

Definitive Guide to Pylons is a book about Pylons published by Apress, written by James Gardner, with free HTML rendering.

Generating documentation requires Sphinx:

$ easy_install Sphinx

Then to build the documentation use the commands:

$ cd pylons/docs/<lang>
$ make html

acidfs's People

Contributors

blaflamme avatar mmerickel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

acidfs's Issues

Creating branch from commit

This may already be supported, but it's not obvious from the docs. Is there a way to create a branch from the commit rather than committing directly into master? The idea is to require approval, using a pull/merge request, before a change can be committed to master.

git segfault when concurrently writing conflicting strings with leading newline

I've experienced a strange git sigfault error when I tried to provoke a conflict while writing strings from two concurrent threads. The Problem seems to be a newline (\n) as first character. Strangely it only occurs when there was a previous commit in the repo.

Tested with Python 2.7, Python 3.4, git 1.9.1 and git 2.7.1. While Python 3.4 throws an exception as subprocess.Popen exits with non-zero return code, Python 2.7 explicitly tells me about a malloc memory corruption:

*** Error in 'git': malloc(): memory corruption (fast): 0x0000000001c97700 ***

Test suite:

https://gist.github.com/epistemery/90340019b6d2b4853355

As I am not very thread-experienced I hope the problem is not related to the test setup. I can't see why it should be, but who knows...

It looks like a git problem to me, but I can't tell where to start investigating, because I'm not familiar with AcidFS internals. All I can tell so far is that the code starting at line 854 never gets called when there is a leading newline in one of the conflicting merges.

Any Ideas where to start?

Non-ASCII filenames.

Hello,

Thank you for this handy package. I think it's a really hidden gem.

If i try to open()/listdir() filenames with non-ASCII characters, i.e. UTF-8 encoded filenames, the transaction fails.

======================================================================
ERROR: test_read_write_nonascii_name (acidfs.tests.FunctionalTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/.../acidfs/tests.py", line 132, in test_read_write_nonascii_name
    transaction.commit()
  File "/.../.eggs/transaction-1.4.4-py2.7.egg/transaction/_manager.py", line 111, in commit
    return self.get().commit()
  File "/.../.eggs/transaction-1.4.4-py2.7.egg/transaction/_transaction.py", line 280, in commit
    reraise(t, v, tb)
  File "/.../.eggs/transaction-1.4.4-py2.7.egg/transaction/_transaction.py", line 271, in commit
    self._commitResources()
  File "/.../.eggs/transaction-1.4.4-py2.7.egg/transaction/_transaction.py", line 417, in _commitResources
    reraise(t, v, tb)
  File "/.../.eggs/transaction-1.4.4-py2.7.egg/transaction/_transaction.py", line 394, in _commitResources
    rm.tpc_vote(self)
  File "/.../acidfs/__init__.py", line 521, in tpc_vote
    tree_oid = self.tree.save()
  File "/.../acidfs/__init__.py", line 969, in save
    proc.stdin.write(_b(name))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf2' in position 4: ordinal not in range(128)

Further investigation reveals following:

  • names in _TreeNode.contents are being forced to be ASCII-encode/decoded.
  • git prints filenames containing bytes above 0x80 default quoted. This can be off by core.quotepath = false config.

So I think following is a possible solution:

  • AcidFS.__init__() accepts optional filename encoding, defaulting to 'ascii' or sys.getfilesystemencoding()
  • _Session, _TreeNode also inherit that encoding
  • In _TreeNode.read() / save(), encode/decode names with the given encoding
  • In AcidFS.__init__(), set repository's core.quotepath config off.

If this is viable, I can make a PR (https://github.com/mete0r/acidfs/tree/feature-support-nonascii-filenames)

Any comments?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.