Advanced Subversion Commands
Rationale
There are some Subversion and Terminal commands that those working in the LEMDO repository
may occasionally use. They are more advanced commands, meaning that they should only
be done by those who are very comfortable working in the command line and who have
consulted with the LEMDO Team, as there is some risk associated with them. This documentation will explain the
practice for adding, deleting, and moving files in the Subversion repository as well
as for showing the commit log for the Subversion repository and comparing versions
of a file in Terminal.
Practice: Add Files to the Repository
To add a file to the centralized LEMDO repository, you must first create and save
it in the correct folder. For example, if you wanted to create an annotations file
for the Merchant of Venice edition, you would need to first create the file in Oxygen, validate it, and save
it in the data/texts/MV/app folder. For best practices around naming files, read
Name Files: Naming Conventions.
In Terminal, run an
svn status to ensure that you have created the file in the correct place. You should see a question
mark (?) on the left side of the window followed by the pathway to your new file and the file name. This indicates that you have created a file, but you have not yet saved it to the centralized repository.
Navigate down the pathway to the lowest possible folder using the command
cd. If you were adding the annotations file as described above, the command would be
cd data/texts/MV/app. Once you are there, run svn add followed by a space and the full name of the file that you wish to add (including
the file extension). Using the same example as above, your command would be svn add emdMV_M_annotation.xml. The question mark on the left side of the Terminal window should now be an upper-case
“A”. This queues the file to be added when you commit, but it does not send it to
the centralized repository.You can now
svn commit as normal.Step-by-Step: Add Files to the Repository
Validate your file in Oxygen and save it in the correct folder.
In Terminal, run
svn status.cd to the lowest level before your file.svn add [filename].xml
svn commit as usual.Practice: Move a File
If you have a file that is saved in the wrong folder (for example, if you saved your
edition bibliography in the app folder when you should have saved it in the crit folder) you will use the command svn mv in the Terminal to move it.
The first step to moving your file is to determine where it is currently located and
where you want it to be located. You will need to have the full pathway for both folders
(the one that it is currently in and the one that you wish for it to be in).
In Terminal, navigate to the lowest shared ancestor directory of both folders (i.e.,
the level before the pathways diverge). For example, if you wanted to move the file
emdFV_bibliography.xml from lemdo/data/texts/FV/app to lemdo/data/texts/FV/crit, the lowest shared ancestor is the FV directory.
You will then need to use the SVN command svn mv to move your file. There are three parts to this command:
Using the same example as before, to move the emdFV_bibliography.xml file from app to crit, you would type the command
The preface
svn mv.The file’s current URL (the pathway to where the file is currently located and the
full file name, including the extension).
The file’s desired URL (the pathway to where you want the file to be located and the
full file name, including the extension).
svn mv app/emdFV_bibliography.xml crit/emdFV_bibliography.xml. Once you have typed in the full command, press the Enter/Return key.When we move a file, we are deleting it from one location and adding it to another,
so you will get the messages for both of those actions. The first message will have
a “D” on the left side followed by the old pathway (including the full file name).
The second message will have an “A” on the left followed by the new pathway. This
means that you have queued the file to be moved, but have not yet sent the change
to the centralized repository.
You can now
svn commit as normal, noting in your message that you moved a file.Step-by-Step: Move a File
cd into the lemdo directory.Type
svn mv followed by the current url of the file and the new desired file url (e.g., svn mv app/emdMV_Bibliography.xml crit/emdMV_Bibliography.xml) and press Enter/Return.Commit your files to the LEMDO repository (e.g.,
svn commit -m "Moved FV bibliography from the app folder to the crit folder.").Practice: Delete Files from the Repository
Use caution when you delete files from Subversion; deleted files can be recovered,
but recovering files is a time-consuming process. You should consult with the LEMDO team before deleting a file from the LEMDO repository. If you do delete a file, you will
first open Terminal and navigate to the lowest level using the command
cd.Once you are in the lowest possible folder, type the command
svn del followed by a space and then the full name of the file that you wish to delete (including
the extension). For example, to delete the file testFile.xml, you would run svn del testFile.xml. You will get a message in Terminal with a “D” on the left followed by the name of
the file that you are deleting. This indicates that you have queued the file to be
deleted when you commit, but that you have not yet deleted it from the centralized
repository.Commit your change as usual.
Step-by-Step: Delete Files from the Repository
cd into the lowest possible level.svn del [filename].xml
svn commit with a message that you have deleted a file.Practice: Open Commit Logs
The
The command line will respond to these commands with a log entry or a series of log
entries that look(s) like this:
svn log command makes it possible to read SVN logs from recent commits, thereby enabling
users to track each other’s work. To see recent commits, follow these steps:
Enter
svn log -l followed by a space and the number of logs you wish to see. For example, if you wanted
to see 20 logs, you would type svn log -l 20. Note that the character after the dash is a lower-case “L”.To see the very latest log entry, enter
svn log -r HEAD.To see the log entry for a specific revision, enter the number of the revision after
-r. For example, svn log -r 1259 will return revision number 1259.To see the log entries for a specific date range, type
svn log -v -r {yyyy-mm-dd}:{yyyy-mm-dd} (where the first yyyy-mm-ddis replaced by the start of the date range that you are interested and the second is replaced by the end of the date range). For example,
svn log -v -r {2024-01-01}:{2024-01-14} will return all commits made between January 1 and January 14, 2024.r10098 | mrothwell | 2022-08-04 15:44:25 -0700 (Thu, 04 Aug 2022) | 1 line
adding MoMS sources from MoEML to LEMDO BIBL.
Each individual log entry corresponds with a commit submitted to SVN. A log entry
provides the revision number, the person who did the commit, the exact date and time
of the commit, and the comment they provided. The information provided by log entries
can be very helpful when attempting to solve mistakes and errors.
Practice: Compare Versions of a File
The
svn diff command allows you to compare two versions of the same file. It will show you the
exact changes that were made between one revision and another in a particular file.
This command is useful if you accidentally overwrite some work in a file and need
to consult an earlier version of the file to recover what you deleted.To use this command, type
svn diff -r followed by the a space, the revision number of the first revision that you want
to compare, a colon, the revision number of the other revision that you want to compare,
and finally a space and the full file name of the file that you want to compare versions
of. For example, svn diff -r 1276:1279 PERS1.xml will return log entries for revisions to PERS1.xml numbered 1276 through to 1279.Prosopography
Janelle Jenstad
Janelle Jenstad is a Professor of English at the University of Victoria, Director
of The Map of Early Modern London, and Director of Linked Early Modern Drama Online. With Jennifer Roberts-Smith and Mark Kaethler, she co-edited Shakespeare’s Language in Digital Media: Old Words, New Tools (Routledge). She has edited John Stow’s A Survey of London (1598 text) for MoEML and is currently editing The Merchant of Venice (with Stephen Wittek) and Heywood’s 2 If You Know Not Me You Know Nobody for DRE. Her articles have appeared in Digital Humanities Quarterly, Elizabethan Theatre, Early Modern Literary Studies, Shakespeare Bulletin, Renaissance and Reformation, and The Journal of Medieval and Early Modern Studies. She contributed chapters to Approaches to Teaching Othello (MLA); Teaching Early Modern Literature from the Archives (MLA); Institutional Culture in Early Modern England (Brill); Shakespeare, Language, and the Stage (Arden); Performing Maternity in Early Modern England (Ashgate); New Directions in the Geohumanities (Routledge); Early Modern Studies and the Digital Turn (Iter); Placing Names: Enriching and Integrating Gazetteers (Indiana); Making Things and Drawing Boundaries (Minnesota); Rethinking Shakespeare Source Study: Audiences, Authors, and Digital Technologies (Routledge); and Civic Performance: Pageantry and Entertainments in Early Modern London (Routledge). For more details, see janellejenstad.com.
Joey Takeda
Joey Takeda is LEMDO’s Consulting Programmer and Designer, a role he assumed in 2020
after three years as the Lead Developer on LEMDO.
Mahayla Galliford
Project manager, 2025-present; research assistant, 2021-present. Mahayla Galliford
(she/her) graduated with a BA (Hons with distinction) from the University of Victoria
in 2024. Mahayla’s undergraduate research explored early modern stage directions and
civic water pageantry. Mahayla continues her studies through UVic’s English MA program
and her SSHRC-funded thesis project focuses on editing and encoding girls’ manuscripts,
specifically Lady Rachel Fane’s dramatic entertainments, in collaboration with LEMDO.
Martin Holmes
Martin Holmes has worked as a developer in the UVic’s Humanities Computing and Media
Centre for over two decades, and has been involved with dozens of Digital Humanities
projects. He has served on the TEI Technical Council and as Managing Editor of the
Journal of the TEI. He took over from Joey Takeda as lead developer on LEMDO in 2020.
He is a collaborator on the SSHRC Partnership Grant led by Janelle Jenstad.
Navarra Houldin
Training and Documentation Lead 2025–present. LEMDO project manager 2022–2025. Textual
remediator 2021–present. Navarra Houldin (they/them) completed their BA with a major
in history and minor in Spanish at the University of Victoria in 2022. Their primary
research was on gender and sexuality in early modern Europe and Latin America. They
are continuing their education through an MA program in Gender and Social Justice
Studies at the University of Alberta where they will specialize in Digital Humanities.
Tracey El Hajj
Junior Programmer 2019–2020. Research Associate 2020–2021. Tracey received her PhD
from the Department of English at the University of Victoria in the field of Science
and Technology Studies. Her research focuses on the algorhythmics of networked communications. She was a 2019–2020 President’s Fellow in Research-Enriched
Teaching at UVic, where she taught an advanced course on
Artificial Intelligence and Everyday Life.Tracey was also a member of the Map of Early Modern London team, between 2018 and 2021. Between 2020 and 2021, she was a fellow in residence at the Praxis Studio for Comparative Media Studies, where she investigated the relationships between artificial intelligence, creativity, health, and justice. As of July 2021, Tracey has moved into the alt-ac world for a term position, while also teaching in the English Department at the University of Victoria.
Orgography
LEMDO Team (LEMD1)
The LEMDO Team is based at the University of Victoria and normally comprises the project
director, the lead developer, project manager, junior developers(s), remediators,
encoders, and remediating editors.
Metadata
| Authority title | Advanced Subversion Commands |
| Type of text | Documentation |
| Publisher | University of Victoria on the Linked Early Modern Drama Online Platform |
| Series | Linked Early Modern Drama Online |
| Source |
TEI Customization created by Martin Holmes, Joey Takeda, and Janelle Jenstad; documentation written by members of the LEMDO Team
|
| Editorial declaration | n/a |
| Edition | Released with Linked Early Modern Drama Online 1.0 |
| Encoding description | Encoded in TEI P5 according to the LEMDO Customization and Encoding Guidelines |
| Document status | prgGenerated |
| Funder(s) | Social Sciences and Humanities Research Council of Canada |
| License/availability |
This file is licensed under a CC BY-NC_ND 4.0 license, which means that it is freely downloadable without permission under the following
conditions: (1) credit must be given to the author and LEMDO in any subsequent use
of the files and/or data; (2) the content cannot be adapted or repurposed (except
in quotations for the purposes of academic review and citation); and (3) commercial
uses are not permitted without the knowledge and consent of the editor and LEMDO.
This license allows for pedagogical use of the documentation in the classroom.
|