Old English wefan "to weave, form by interlacing yarn," figuratively "devise, contrive, arrange" (class V strong verb; past tense wæf, past participle wefen), from Proto-Germanic *weban (source also of Old Norse vefa, Middle Low German, Middle Dutch, Dutch weven, Old High German weban, German weben "to weave"), from PIE root *(h)uebh- "to weave;" also "to move quickly" (source also of Sanskrit ubhnati "he laces together," Persian baftan "to weave," Greek hyphē, hyphos "web," Old English webb "web").
The form of the past tense altered in Middle English from wave to wove. Extended sense of "combine into a whole" is from late 14c.; meaning "go by twisting and turning" is from 1640s. Related: Wove; woven; weaving.