Skip to content

Commit

Permalink
Merge branch 'pw/p4-appledouble-fix'
Browse files Browse the repository at this point in the history
* pw/p4-appledouble-fix:
  git-p4: ignore apple filetype
  • Loading branch information
Junio C Hamano committed Nov 7, 2011
2 parents ee6dfb2 + 9f7ef0e commit de26347
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
13 changes: 13 additions & 0 deletions contrib/fast-import/git-p4
Original file line number Diff line number Diff line change
Expand Up @@ -1318,6 +1318,19 @@ class P4Sync(Command, P4UserMap):
text = p4_read_pipe(['print', '-q', '-o', '-', file['depotFile']])
contents = [ text ]

if type_base == "apple":
# Apple filetype files will be streamed as a concatenation of
# its appledouble header and the contents. This is useless
# on both macs and non-macs. If using "print -q -o xx", it
# will create "xx" with the data, and "%xx" with the header.
# This is also not very useful.
#
# Ideally, someday, this script can learn how to generate
# appledouble files directly and import those to git, but
# non-mac machines can never find a use for apple filetype.
print "\nIgnoring apple filetype file %s" % file['depotFile']
return

# Perhaps windows wants unicode, utf16 newlines translated too;
# but this is not doing it.
if self.isWindows and type_base == "text":
Expand Down
31 changes: 31 additions & 0 deletions t/t9802-git-p4-filetype.sh
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,37 @@ test_expect_success 'keyword file test' '
)
'

build_gendouble() {
cat >gendouble.py <<-\EOF
import sys
import struct
import array
s = array.array("c", '\0' * 26)
struct.pack_into(">L", s, 0, 0x00051607) # AppleDouble
struct.pack_into(">L", s, 4, 0x00020000) # version 2
s.tofile(sys.stdout)
EOF
}

test_expect_success 'ignore apple' '
test_when_finished rm -f gendouble.py &&
build_gendouble &&
(
cd "$cli" &&
test-genrandom apple 1024 >double.png &&
"$PYTHON_PATH" "$TRASH_DIRECTORY/gendouble.py" >%double.png &&
p4 add -t apple double.png &&
p4 submit -d appledouble
) &&
test_when_finished cleanup_git &&
"$GITP4" clone --dest="$git" //depot@all &&
(
cd "$git" &&
test ! -f double.png
)
'

test_expect_success 'kill p4d' '
kill_p4d
'
Expand Down

0 comments on commit de26347

Please sign in to comment.