The content of each port's "files" directory should be kept fairly small as it is copied to every MacPorts user's hard drive. If larger patches (for example application bundles with icon files) are supplied then they should be added to distfiles so they are only downloaded by those users who are actually installing the port. = Set up personal space in repository = First set up your [wiki:CommittersGuide/PersonalSVNRepository user directory in the MacPorts Subversion repository] to maintain the files. Inside your user directory in the repository, you should create a directory with the port's name. Also create a directory for the port you're working on inside the distfiles area of the Subversion repository. You can use the commands below to do so: {{{ Repository=https://svn.macosforge.org/repository/macports User=userid Port=portid svn mkdir --username ${User}@macports.org -m"Create staging for ${Port}" ${Repository}/users/${User}/${Port} svn mkdir --username ${User}@macports.org -m"Create distfiles for ${Port}" ${Repository}/distfiles/${Port} }}} Replace '''userid''' and '''portid''' with your own userid and the port you are working on. = Prepare files = Prepare the files you want to distribute inside your user directory in the repository and commit them back into Subversion. Then export them again. Export is needed so unnecessary svn meta data is not distributed. The exported files should then be packed. To keep the Portfile simple it is best to use the same archiver as is used for the main source file. You can use the following commands to do so: {{{ Repository=https://svn.macports.org/repository/macports User=userid Port=portid Version=12345 alias tar=/opt/local/bin/gnutar alias mv=/opt/local/bin/gmv alias rm=/opt/local/bin/grm svn export ${Repository}/users/${User}/${Port} mv --verbose ${Port} ${Port}-r${in_Version} tar --create --gzip --file="${Port}-r${Version}.tar.gz" "${Port}-r${in_Version}" svn import -m"Add distfile for ${Port}" "${Port}-r${Version}.tar.gz" "${Repository}/distfiles/${Port}/${Port}-r${Version}.tar.gz" rm --verbose --recursive "${Port}" }}} Replace '''12345''' with a unique version identifier and '''userid''' and '''portid''' as you did before. [browser:users/krischik/nonpareil/Upload.command Upload.command] shows one way how you can automate the whole process.