Mercurial > hg
view tests/svn/svndump-tags.sh @ 31471:95be8b7181d3
osutil: fix potential wrong fd close
According to POSIX closedir [1]:
If a file descriptor is used to implement type DIR, that file descriptor
shall be closed.
According to POSIX fdopendir [2]:
Upon calling closedir() the file descriptor shall be closed.
So we should avoid "close(dfd)" after "closedir(dir)". With threads, there
could be a race where an innocent fd gets closed. But Python GIL seems to
help hiding the issue well.
[1]: http://pubs.opengroup.org/onlinepubs/009695399/functions/closedir.html
[2]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/fdopendir.html
author | Jun Wu <quark@fb.com> |
---|---|
date | Wed, 15 Mar 2017 20:43:12 -0700 |
parents | 965b11c1bd82 |
children |
line wrap: on
line source
#!/bin/sh # # Use this script to generate tags.svndump # mkdir temp cd temp mkdir project-orig cd project-orig mkdir trunk mkdir branches mkdir tags mkdir unrelated cd .. svnadmin create svn-repo svnurl=file://`pwd`/svn-repo svn import project-orig $svnurl -m "init projA" svn co $svnurl project cd project echo a > trunk/a svn add trunk/a svn ci -m adda echo a >> trunk/a svn ci -m changea echo a >> trunk/a svn ci -m changea2 # Add an unrelated commit to test that tags are bound to the # correct "from" revision and not a dummy one echo a >> unrelated/dummy svn add unrelated/dummy svn ci -m unrelatedchange # Tag current revision svn up svn copy trunk tags/trunk.v1 svn copy trunk tags/trunk.badtag svn ci -m "tagging trunk.v1 trunk.badtag" echo a >> trunk/a svn ci -m changea3 # Fix the bad tag # trunk.badtag should not show in converted tags svn up svn mv tags/trunk.badtag tags/trunk.goodtag svn ci -m "fix trunk.badtag" echo a >> trunk/a svn ci -m changea # Delete goodtag and recreate it, to test we pick the good one svn rm tags/trunk.goodtag svn ci -m removegoodtag svn up svn copy trunk tags/trunk.goodtag svn ci -m recreategoodtag cd .. svnadmin dump svn-repo > ../tags.svndump