Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cfg_text2git.py incorrectly assumes .gitattributes as a trailing newline #2954

Closed
kyleam opened this issue Oct 26, 2018 · 1 comment
Closed

cfg_text2git.py incorrectly assumes .gitattributes as a trailing newline #2954

kyleam opened this issue Oct 26, 2018 · 1 comment
Assignees

Comments

@kyleam
Copy link
Contributor

@kyleam kyleam commented Oct 26, 2018

set -x

repo=$(mktemp -d --suffix=.datalad)
cd $repo

datalad create .
cat .gitattributes
datalad run-procedure cfg_text2git
cat .gitattributes
+ mktemp -d --suffix=.datalad
+ repo=/tmp/tmp.MRaKNTwWG0.datalad
+ cd /tmp/tmp.MRaKNTwWG0.datalad
+ datalad create .
[INFO   ] Creating a new annex repo at /tmp/tmp.MRaKNTwWG0.datalad 
create(ok): /tmp/tmp.MRaKNTwWG0.datalad (dataset)
+ cat .gitattributes

* annex.backend=MD5E
**/.git* annex.largefiles=nothing+ datalad run-procedure cfg_text2git
[INFO   ] == Command start (output follows) ===== 
[INFO   ] == Command exit (modification check follows) ===== 
+ cat .gitattributes

* annex.backend=MD5E
**/.git* annex.largefiles=nothing* annex.largefiles=(not(mimetype=text/*))

Note the last (malformed) line.

@mih
Copy link
Member

@mih mih commented Oct 27, 2018

The fix is to use GitRepo.set_gitattributes()

@mih mih self-assigned this Nov 4, 2018
@kyleam kyleam closed this in eed1cac Nov 4, 2018
kyleam added a commit that referenced this issue Nov 4, 2018
BF: cfg_text2git use Repo.set_gitattributes() (fixes gh-2954)
yarikoptic added a commit that referenced this issue Nov 27, 2018
	## 0.11.1 (Nov 25, 2018) -- v7-better-than-v6

	Rushed out bugfix release to stay fully compatible with recent
	[git-annex] which introduced v7 to replace v6.

	### Fixes

	- [install]: be able to install recursively into a dataset ([#2982])
	- [save]: be able to commit/save changes whenever files potentially
	  could have swapped their storage between git and annex
	  ([#1651]) ([#2752]) ([#3009])
	- [aggregate-metadata]:
	  - dataset's itself is now not "aggregated" if specific paths are
		provided for aggregation ([#3002]). That resolves the issue of
		`-r` invocation aggregating all subdatasets of the specified dataset
		as well
	  - also compare/verify the actual content checksum of aggregated metadata
		while considering subdataset metadata for re-aggregation ([#3007])
	- `annex` commands are now chunked assuming 50% "safety margin" on the
	  maximal command line length. Should resolve crashes while operating
	  ot too many files at ones ([#3001])
	- `run` sidecar config processing ([#2991])
	- no double trailing period in docs ([#2984])
	- correct identification of the repository with symlinks in the paths
	  in the tests ([#2972])
	- re-evaluation of dataset properties in case of dataset changes ([#2946])
	- [text2git] procedure to use `ds.repo.set_gitattributes`
	  ([#2974]) ([#2954])
	- Switch to use plain `os.getcwd()` if inconsistency with env var
	  `$PWD` is detected ([#2914])
	- Make sure that credential defined in env var takes precedence
	  ([#2960]) ([#2950])

	### Enhancements and new features

	- [shub://datalad/datalad:git-annex-dev](https://singularity-hub.org/containers/5663/view)
	  provides a Debian buster Singularity image with build environment for
	  [git-annex]. [tools/bisect-git-annex]() provides a helper for running
	  `git bisect` on git-annex using that Singularity container ([#2995])
	- Added [.zenodo.json]() for better integration with Zenodo for citation
	- [run-procedure] now provides names and help messages with a custom
	  renderer for ([#2993])
	- Documentation: point to [datalad-revolution] extension (prototype of
	  the greater DataLad future)
	- [run]
	  - support injecting of a detached command ([#2937])
	- `annex` metadata extractor now extracts `annex.key` metadata record.
	  Should allow now to identify uses of specific files etc ([#2952])
	- Test that we can install from http://datasets.datalad.org
	- Proper rendering of `CommandError` (e.g. in case of "out of space"
	  error) ([#2958])

* tag '0.11.1':
  Adjust the date -- 25th fell through due to __version__ fiasco
  BF+ENH(TST): boost hardcoded version + provide a test to guarantee consistency in the future
  This (expensive) approach is not needed in v6+
  small tuneup to changelog
kyleam added a commit to kyleam/datalad that referenced this issue Dec 4, 2018
Similar to the cfg_text2git new line issue (dataladgh-2954, fixed by
eed1cac), setup_yoda_dataset creates a malformed attribute line:

    **/.git* annex.largefiles=nothingREADME.md annex.largefiles=nothing

Use GitRepo.set_gitattributes() so that new lines are properly
handled.  Don't bother checking if the attribute exists since the
procedure is documented as assuming a just-create dataset.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants